[PATCH] D146418: Support for OpenMP 5.0 sec 2.12.7 - Declare Target initializer expressions
Alexey Bataev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Mar 20 06:30:59 PDT 2023
ABataev added inline comments.
================
Comment at: clang/lib/Parse/ParseDecl.cpp:2093-2115
+void ParseImplicitDeclareTargetAttr(Decl *TargetDecl) {
+ if (TargetDecl && TargetDecl->hasAttr<OMPDeclareTargetDeclAttr>() &&
+ isa<VarDecl>(TargetDecl)) {
+ VarDecl *TargetVarDecl = cast<VarDecl>(TargetDecl);
+ Expr *Ex = TargetVarDecl->getInit()->IgnoreCasts();
+ const DeclRefExpr *DeclRef = nullptr;
+ if (Ex && isa<UnaryOperator>(Ex) && TargetVarDecl->hasGlobalStorage()) {
----------------
It has nothing to do with parsing, sema analysis. Make it part of Sema::checkDeclIsAllowedInOpenMPTarget
================
Comment at: clang/lib/Parse/ParseDecl.cpp:2107
+ DeclVar->addAttr(TargetDecl->getAttr<OMPDeclareTargetDeclAttr>());
+ ParseImplicitDeclareTargetAttr(DeclVar);
+ }
----------------
Try to avoid recursion here
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D146418/new/
https://reviews.llvm.org/D146418
More information about the cfe-commits
mailing list