diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2019-12-20 11:04:57 -0500 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2019-12-24 12:22:05 -0500 |
commit | 93dc40dddde40cff2f54b68c66abb00927cdbcea (patch) | |
tree | b63973cdc9636d337fb7dee48d9ec1fd4b633b34 /clang/lib/Basic | |
parent | 0d47399167eee87711f5c93a3f36801c7b6a6774 (diff) | |
download | bcm5719-llvm-93dc40dddde40cff2f54b68c66abb00927cdbcea.tar.gz bcm5719-llvm-93dc40dddde40cff2f54b68c66abb00927cdbcea.zip |
[OPENMP50]Basic support for conditional lastprivate.
Added parsing/sema checks for conditional lastprivates.
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/OpenMPKinds.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/clang/lib/Basic/OpenMPKinds.cpp b/clang/lib/Basic/OpenMPKinds.cpp index 3222db71365..87b2ca6b039 100644 --- a/clang/lib/Basic/OpenMPKinds.cpp +++ b/clang/lib/Basic/OpenMPKinds.cpp @@ -175,6 +175,11 @@ unsigned clang::getOpenMPSimpleClauseType(OpenMPClauseKind Kind, #define OPENMP_DEVICE_TYPE_KIND(Name) .Case(#Name, OMPC_DEVICE_TYPE_##Name) #include "clang/Basic/OpenMPKinds.def" .Default(OMPC_DEVICE_TYPE_unknown); + case OMPC_lastprivate: + return llvm::StringSwitch<OpenMPLastprivateModifier>(Str) +#define OPENMP_LASTPRIVATE_KIND(Name) .Case(#Name, OMPC_LASTPRIVATE_##Name) +#include "clang/Basic/OpenMPKinds.def" + .Default(OMPC_LASTPRIVATE_unknown); case OMPC_unknown: case OMPC_threadprivate: case OMPC_if: @@ -187,7 +192,6 @@ unsigned clang::getOpenMPSimpleClauseType(OpenMPClauseKind Kind, case OMPC_collapse: case OMPC_private: case OMPC_firstprivate: - case OMPC_lastprivate: case OMPC_shared: case OMPC_reduction: case OMPC_task_reduction: @@ -370,6 +374,16 @@ const char *clang::getOpenMPSimpleClauseTypeName(OpenMPClauseKind Kind, #include "clang/Basic/OpenMPKinds.def" } llvm_unreachable("Invalid OpenMP 'device_type' clause type"); + case OMPC_lastprivate: + switch (Type) { + case OMPC_LASTPRIVATE_unknown: + return "unknown"; +#define OPENMP_LASTPRIVATE_KIND(Name) \ + case OMPC_LASTPRIVATE_##Name: \ + return #Name; +#include "clang/Basic/OpenMPKinds.def" + } + llvm_unreachable("Invalid OpenMP 'lastprivate' clause type"); case OMPC_unknown: case OMPC_threadprivate: case OMPC_if: @@ -382,7 +396,6 @@ const char *clang::getOpenMPSimpleClauseTypeName(OpenMPClauseKind Kind, case OMPC_collapse: case OMPC_private: case OMPC_firstprivate: - case OMPC_lastprivate: case OMPC_shared: case OMPC_reduction: case OMPC_task_reduction: |