diff options
Diffstat (limited to 'clang/lib/AST/StmtProfile.cpp')
-rw-r--r-- | clang/lib/AST/StmtProfile.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/clang/lib/AST/StmtProfile.cpp b/clang/lib/AST/StmtProfile.cpp index 150b92ef..cd91a79 100644 --- a/clang/lib/AST/StmtProfile.cpp +++ b/clang/lib/AST/StmtProfile.cpp @@ -2555,8 +2555,13 @@ void OpenACCClauseProfiler::VisitCreateClause( } void OpenACCClauseProfiler::VisitSelfClause(const OpenACCSelfClause &Clause) { - if (Clause.hasConditionExpr()) - Profiler.VisitStmt(Clause.getConditionExpr()); + if (Clause.isConditionExprClause()) { + if (Clause.hasConditionExpr()) + Profiler.VisitStmt(Clause.getConditionExpr()); + } else { + for (auto *E : Clause.getVarList()) + Profiler.VisitStmt(E); + } } void OpenACCClauseProfiler::VisitFinalizeClause( @@ -2780,6 +2785,13 @@ void StmtProfiler::VisitOpenACCSetConstruct(const OpenACCSetConstruct *S) { P.VisitOpenACCClauseList(S->clauses()); } +void StmtProfiler::VisitOpenACCUpdateConstruct( + const OpenACCUpdateConstruct *S) { + VisitStmt(S); + OpenACCClauseProfiler P{*this}; + P.VisitOpenACCClauseList(S->clauses()); +} + void StmtProfiler::VisitHLSLOutArgExpr(const HLSLOutArgExpr *S) { VisitStmt(S); } |