diff options
Diffstat (limited to 'clang/lib/Basic/OpenMPKinds.cpp')
-rw-r--r-- | clang/lib/Basic/OpenMPKinds.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/clang/lib/Basic/OpenMPKinds.cpp b/clang/lib/Basic/OpenMPKinds.cpp index 3204e22..8937e87 100644 --- a/clang/lib/Basic/OpenMPKinds.cpp +++ b/clang/lib/Basic/OpenMPKinds.cpp @@ -214,6 +214,7 @@ unsigned clang::getOpenMPSimpleClauseType(OpenMPClauseKind Kind, case OMPC_update: case OMPC_capture: case OMPC_seq_cst: + case OMPC_acq_rel: case OMPC_device: case OMPC_threads: case OMPC_simd: @@ -426,6 +427,7 @@ const char *clang::getOpenMPSimpleClauseTypeName(OpenMPClauseKind Kind, case OMPC_update: case OMPC_capture: case OMPC_seq_cst: + case OMPC_acq_rel: case OMPC_device: case OMPC_threads: case OMPC_simd: @@ -577,9 +579,22 @@ bool clang::isAllowedClauseForDirective(OpenMPDirectiveKind DKind, } break; case OMPD_flush: - return CKind == OMPC_flush; + if (CKind == OMPC_flush) + return true; + if (OpenMPVersion < 50) + return false; + switch (CKind) { +#define OPENMP_FLUSH_CLAUSE(Name) \ + case OMPC_##Name: \ + return true; +#include "clang/Basic/OpenMPKinds.def" + default: + break; + } break; case OMPD_atomic: + if (OpenMPVersion < 50 && CKind == OMPC_acq_rel) + return false; switch (CKind) { #define OPENMP_ATOMIC_CLAUSE(Name) \ case OMPC_##Name: \ |