summaryrefslogtreecommitdiff
path: root/lib/Sema/SemaOpenMP.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2019-09-25 19:43:37 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2019-09-25 19:43:37 +0000
commit305058753c6d01bf18a1860d2e86a3946f1cc3bf (patch)
treedb224f3aafab9a449397a548a400dfe5b2f86816 /lib/Sema/SemaOpenMP.cpp
parentd150f82faeafb0dc866eb460999d1f92927f630f (diff)
downloadclang-305058753c6d01bf18a1860d2e86a3946f1cc3bf.tar.gz
[OPENMP50]Parsing/sema support for 'implementation/vendor' context
selector. Added basic parsing/semantic support for 'implementation={vendor(<vendor>)}' context selector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@372917 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaOpenMP.cpp')
-rw-r--r--lib/Sema/SemaOpenMP.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/Sema/SemaOpenMP.cpp b/lib/Sema/SemaOpenMP.cpp
index 34ce66c4e3..0403f11f6b 100644
--- a/lib/Sema/SemaOpenMP.cpp
+++ b/lib/Sema/SemaOpenMP.cpp
@@ -5101,11 +5101,14 @@ Sema::checkOpenMPDeclareVariantFunction(Sema::DeclGroupPtrTy DG,
return std::make_pair(FD, cast<Expr>(DRE));
}
-void Sema::ActOnOpenMPDeclareVariantDirective(FunctionDecl *FD,
- Expr *VariantRef,
- SourceRange SR) {
- auto *NewAttr =
- OMPDeclareVariantAttr::CreateImplicit(Context, VariantRef, SR);
+void Sema::ActOnOpenMPDeclareVariantDirective(
+ FunctionDecl *FD, Expr *VariantRef, SourceRange SR,
+ const Sema::OpenMPDeclareVariantCtsSelectorData &Data) {
+ if (Data.CtxSet == OMPDeclareVariantAttr::CtxSetUnknown ||
+ Data.Ctx == OMPDeclareVariantAttr::CtxUnknown)
+ return;
+ auto *NewAttr = OMPDeclareVariantAttr::CreateImplicit(
+ Context, VariantRef, Data.CtxSet, Data.Ctx, Data.ImplVendor, SR);
FD->addAttr(NewAttr);
}