summaryrefslogtreecommitdiffstats
path: root/clang/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
commit9ff34745a2e60712a2d79f8dde448841efb64ab6 (patch)
tree48c156279c90ef7cacea5e7360a1994a6e6407ad /clang/lib/Sema/SemaOpenMP.cpp
parent45c935bd0b5bde5c432b8ac2a4da1e54f6bc273a (diff)
downloadbcm5719-llvm-9ff34745a2e60712a2d79f8dde448841efb64ab6.tar.gz
bcm5719-llvm-9ff34745a2e60712a2d79f8dde448841efb64ab6.zip
[OPENMP50]Parsing/sema support for 'implementation/vendor' context
selector. Added basic parsing/semantic support for 'implementation={vendor(<vendor>)}' context selector. llvm-svn: 372917
Diffstat (limited to 'clang/lib/Sema/SemaOpenMP.cpp')
-rw-r--r--clang/lib/Sema/SemaOpenMP.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp
index 34ce66c4e3f..0403f11f6b7 100644
--- a/clang/lib/Sema/SemaOpenMP.cpp
+++ b/clang/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);
}
OpenPOWER on IntegriCloud