diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp index 3a5f4b12ce296..e400f248d15aa 100644 --- a/clang/lib/Sema/SemaOpenMP.cpp +++ b/clang/lib/Sema/SemaOpenMP.cpp @@ -161,7 +161,7 @@ class DSAStackTy { LoopControlVariablesMapTy LCVMap; DefaultDataSharingAttributes DefaultAttr = DSA_unspecified; SourceLocation DefaultAttrLoc; - DefaultmapInfo DefaultmapMap[OMPC_DEFAULTMAP_unknown]; + DefaultmapInfo DefaultmapMap[OMPC_DEFAULTMAP_unknown + 1]; OpenMPDirectiveKind Directive = OMPD_unknown; /// GenericLoopDirective with bind clause is mapped to other directives, /// like for, distribute and simd. Presently, set MappedDirective to @@ -3689,7 +3689,7 @@ class DSAAttrChecker final : public StmtVisitor { bool ErrorFound = false; bool TryCaptureCXXThisMembers = false; CapturedStmt *CS = nullptr; - const static unsigned DefaultmapKindNum = OMPC_DEFAULTMAP_pointer + 1; + const static unsigned DefaultmapKindNum = OMPC_DEFAULTMAP_unknown + 1; llvm::SmallVector ImplicitFirstprivate; llvm::SmallVector ImplicitPrivate; llvm::SmallVector ImplicitMap[DefaultmapKindNum][OMPC_MAP_delete]; @@ -6276,7 +6276,7 @@ StmtResult Sema::ActOnOpenMPExecutableDirective( SmallVector ImplicitPrivates( DSAChecker.getImplicitPrivate().begin(), DSAChecker.getImplicitPrivate().end()); - const unsigned DefaultmapKindNum = OMPC_DEFAULTMAP_pointer + 1; + const unsigned DefaultmapKindNum = OMPC_DEFAULTMAP_unknown + 1; SmallVector ImplicitMaps[DefaultmapKindNum][OMPC_MAP_delete]; SmallVector ImplicitMapModifiers[DefaultmapKindNum]; diff --git a/clang/test/OpenMP/target_ast_print.cpp b/clang/test/OpenMP/target_ast_print.cpp index d3daed053cc2e..45907e93321a8 100644 --- a/clang/test/OpenMP/target_ast_print.cpp +++ b/clang/test/OpenMP/target_ast_print.cpp @@ -1110,6 +1110,8 @@ T tmain(T argc, T *argv) { foo(); #pragma omp target thread_limit(C) foo(); + #pragma omp target defaultmap(present) + foo(); return 0; } @@ -1123,6 +1125,8 @@ T tmain(T argc, T *argv) { // OMP51-NEXT: foo() // OMP51-NEXT: #pragma omp target thread_limit(C) // OMP51-NEXT: foo() +// OMP51-NEXT: #pragma omp target defaultmap(present) +// OMP51-NEXT: foo() // OMP51-LABEL: int main(int argc, char **argv) { int main (int argc, char **argv) {