Skip to content

Commit dacbd94

Browse files
committed
Fix some 'depend' clause diagnostics, compiler warnings and update some code to upstream
1 parent 7496d22 commit dacbd94

File tree

3 files changed

+20
-21
lines changed

3 files changed

+20
-21
lines changed

clang/lib/CodeGen/CGOmpSsRuntime.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1166,17 +1166,17 @@ static llvm::Function *createComputeDepFunction(CodeGenFunction &CGF,
11661166
SmallVector<llvm::Type *, 4> ArgsTypeList;
11671167
SmallVector<llvm::Value *, 4> ArgsValueList;
11681168

1169-
for (const auto p : ExprInvolvedVarList) {
1169+
for (const auto &p : ExprInvolvedVarList) {
11701170
llvm::Value *V = p.second.getPointer(CGF);
11711171
ArgsTypeList.push_back(V->getType());
11721172
ArgsValueList.push_back(V);
11731173
}
1174-
for (const auto p : VLASizeInvolvedMap) {
1174+
for (const auto &p : VLASizeInvolvedMap) {
11751175
llvm::Value *V = p.second;
11761176
ArgsTypeList.push_back(V->getType());
11771177
ArgsValueList.push_back(V);
11781178
}
1179-
for (const auto p : CaptureInvolvedMap) {
1179+
for (const auto &p : CaptureInvolvedMap) {
11801180
Address Addr = p.second;
11811181
llvm::Value *V = Addr.getPointer();
11821182
ArgsTypeList.push_back(V->getType());
@@ -1260,7 +1260,7 @@ void CGOmpSsRuntime::EmitDependencyList(
12601260
{
12611261
CodeGenFunction::OSSPrivateScope InitScope(NewCGF);
12621262
auto ArgI = ComputeDepFun->arg_begin();
1263-
for (const auto p : DependInfoGathering.getInvolvedVarList()) {
1263+
for (const auto &p : DependInfoGathering.getInvolvedVarList()) {
12641264
const VarDecl *VD = p.first;
12651265
LValue LV = p.second;
12661266
InitScope.addPrivate(VD, [&ArgI, &LV]() -> Address {
@@ -1269,7 +1269,7 @@ void CGOmpSsRuntime::EmitDependencyList(
12691269

12701270
++ArgI;
12711271
}
1272-
for (const auto p : DependInfoGathering.getVLASizeInvolvedMap()) {
1272+
for (const auto &p : DependInfoGathering.getVLASizeInvolvedMap()) {
12731273
const Expr *VLASizeExpr = p.first;
12741274
InitScope.addPrivateVLA(VLASizeExpr, [ArgI]() -> llvm::Value * {
12751275
return ArgI;
@@ -1278,7 +1278,7 @@ void CGOmpSsRuntime::EmitDependencyList(
12781278
++ArgI;
12791279
}
12801280
CaptureMapTy CaptureReplacedMap;
1281-
for (const auto p : DependInfoGathering.getCaptureInvolvedMap()) {
1281+
for (const auto &p : DependInfoGathering.getCaptureInvolvedMap()) {
12821282
const VarDecl *VD = p.first;
12831283
Address Addr = p.second;
12841284
Address NewAddr = Address(ArgI, Addr.getAlignment());
@@ -1405,15 +1405,15 @@ void CGOmpSsRuntime::EmitDependencyList(
14051405
List.push_back(DependInfoGathering.getBaseValue());
14061406
List.push_back(ComputeDepFun);
14071407

1408-
for (const auto p : DependInfoGathering.getInvolvedVarList()) {
1408+
for (const auto &p : DependInfoGathering.getInvolvedVarList()) {
14091409
LValue LV = p.second;
14101410
List.push_back(LV.getPointer(CGF));
14111411
}
1412-
for (const auto p : DependInfoGathering.getVLASizeInvolvedMap()) {
1412+
for (const auto &p : DependInfoGathering.getVLASizeInvolvedMap()) {
14131413
llvm::Value *VLASizeValue = p.second;
14141414
List.push_back(VLASizeValue);
14151415
}
1416-
for (const auto p : DependInfoGathering.getCaptureInvolvedMap()) {
1416+
for (const auto &p : DependInfoGathering.getCaptureInvolvedMap()) {
14171417
Address Addr = p.second;
14181418
llvm::Value *V = Addr.getPointer();
14191419
List.push_back(V);

clang/lib/Sema/SemaOmpSs.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1415,16 +1415,15 @@ bool Sema::ActOnOmpSsDependKinds(ArrayRef<OmpSsDependClauseKind> DepKinds,
14151415
Diag(DepLoc, diag::err_oss_depend_weak_required);
14161416
return false;
14171417
} else if (numUnk == 2) {
1418-
unsigned Except[] = {OSSC_DEPEND_inoutset, OSSC_DEPEND_mutexinoutset};
14191418
Diag(DepLoc, diag::err_oss_unexpected_clause_value)
14201419
<< getListOfPossibleValues(OSSC_depend, /*First=*/0,
1421-
/*Last=*/OSSC_DEPEND_unknown, Except)
1420+
/*Last=*/OSSC_DEPEND_unknown)
14221421
<< getOmpSsClauseName(OSSC_depend);
14231422
return false;
14241423
}
14251424
} else if ((numWeaks == 1 && numUnk == 1)
14261425
|| (numWeaks == 2 && numUnk == 0)) {
1427-
unsigned Except[] = {OSSC_DEPEND_weak, OSSC_DEPEND_inoutset, OSSC_DEPEND_mutexinoutset};
1426+
unsigned Except[] = {OSSC_DEPEND_weak, OSSC_DEPEND_inoutset};
14281427
Diag(DepLoc, diag::err_oss_unexpected_clause_value)
14291428
<< getListOfPossibleValues(OSSC_depend, /*First=*/0,
14301429
/*Last=*/OSSC_DEPEND_unknown, Except)
@@ -2045,9 +2044,9 @@ static bool actOnOSSReductionKindClause(
20452044
if (auto *ComplexTy = OrigType->getAs<ComplexType>())
20462045
Type = ComplexTy->getElementType();
20472046
if (Type->isRealFloatingType()) {
2048-
llvm::APFloat InitValue =
2049-
llvm::APFloat::getAllOnesValue(Context.getTypeSize(Type),
2050-
/*isIEEE=*/true);
2047+
llvm::APFloat InitValue = llvm::APFloat::getAllOnesValue(
2048+
Context.getFloatTypeSemantics(Type),
2049+
Context.getTypeSize(Type));
20512050
Init = FloatingLiteral::Create(Context, InitValue, /*isexact=*/true,
20522051
Type, ELoc);
20532052
} else if (Type->isScalarType()) {

clang/test/OmpSs/Sema/task_depend.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,14 @@ int main(int argc, char **argv, char *env[]) {
7777
#pragma oss task inoutset(argc) // expected-warning {{extra tokens at the end of '#pragma oss task' are ignored}}
7878

7979
#pragma oss task depend(in : arr[0])
80-
#pragma oss task depend(, // expected-error {{expected 'in', 'out', 'inout' or 'weak' in OmpSs-2 clause 'depend'}} expected-error {{expected ')'}} expected-note {{to match this '('}} expected-warning {{missing ':' after dependency type - ignoring}}
81-
#pragma oss task depend(, : // expected-error {{expected 'in', 'out', 'inout' or 'weak' in OmpSs-2 clause 'depend'}} expected-error {{expected ')'}} expected-note {{to match this '('}}
82-
#pragma oss task depend(, : ) // expected-error {{expected 'in', 'out', 'inout' or 'weak' in OmpSs-2 clause 'depend'}}
80+
#pragma oss task depend(, // expected-error {{expected 'in', 'out', 'inout', 'inoutset', 'mutexinoutset' or 'weak' in OmpSs-2 clause 'depend'}} expected-error {{expected ')'}} expected-note {{to match this '('}} expected-warning {{missing ':' after dependency type - ignoring}}
81+
#pragma oss task depend(, : // expected-error {{expected 'in', 'out', 'inout', 'inoutset', 'mutexinoutset' or 'weak' in OmpSs-2 clause 'depend'}} expected-error {{expected ')'}} expected-note {{to match this '('}}
82+
#pragma oss task depend(, : ) // expected-error {{expected 'in', 'out', 'inout', 'inoutset', 'mutexinoutset' or 'weak' in OmpSs-2 clause 'depend'}}
8383
#pragma oss task depend(in, weak: ) // expected-error {{expected expression}}
8484
#pragma oss task depend(weak, in: ) // expected-error {{expected expression}}
85-
#pragma oss task depend(, weak: argc) // expected-error {{expected 'in', 'out' or 'inout' in OmpSs-2 clause 'depend'}}
86-
#pragma oss task depend(weak, : argc) // expected-error {{expected 'in', 'out' or 'inout' in OmpSs-2 clause 'depend'}}
87-
#pragma oss task depend(weak, weak: argc) // expected-error {{expected 'in', 'out' or 'inout' in OmpSs-2 clause 'depend'}}
85+
#pragma oss task depend(, weak: argc) // expected-error {{expected 'in', 'out', 'inout' or 'mutexinoutset' in OmpSs-2 clause 'depend'}}
86+
#pragma oss task depend(weak, : argc) // expected-error {{expected 'in', 'out', 'inout' or 'mutexinoutset' in OmpSs-2 clause 'depend'}}
87+
#pragma oss task depend(weak, weak: argc) // expected-error {{expected 'in', 'out', 'inout' or 'mutexinoutset' in OmpSs-2 clause 'depend'}}
8888
#pragma oss task depend(in, in: argc) // expected-error {{expected 'weak' dependency type}}
8989
#pragma oss task depend(out, in: argc) // expected-error {{expected 'weak' dependency type}}
9090
#pragma oss task depend(weak, in: 1) // expected-error {{expected addressable lvalue expression, array element, array shape or array section}}

0 commit comments

Comments
 (0)