diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index c37fa2fcc94815..95ded5e59a9fa7 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -11859,13 +11859,14 @@ StmtResult TreeTransform::TransformOpenACCComputeConstruct( OpenACCComputeConstruct *C) { getSema().OpenACC().ActOnConstruct(C->getDirectiveKind(), C->getBeginLoc()); + llvm::SmallVector TransformedClauses = + getDerived().TransformOpenACCClauseList(C->getDirectiveKind(), + C->clauses()); + if (getSema().OpenACC().ActOnStartStmtDirective(C->getDirectiveKind(), C->getBeginLoc())) return StmtError(); - llvm::SmallVector TransformedClauses = - getDerived().TransformOpenACCClauseList(C->getDirectiveKind(), - C->clauses()); // Transform Structured Block. SemaOpenACC::AssociatedStmtRAII AssocStmtRAII(getSema().OpenACC(), C->getDirectiveKind()); @@ -11884,14 +11885,14 @@ TreeTransform::TransformOpenACCLoopConstruct(OpenACCLoopConstruct *C) { getSema().OpenACC().ActOnConstruct(C->getDirectiveKind(), C->getBeginLoc()); - if (getSema().OpenACC().ActOnStartStmtDirective(C->getDirectiveKind(), - C->getBeginLoc())) - return StmtError(); - llvm::SmallVector TransformedClauses = getDerived().TransformOpenACCClauseList(C->getDirectiveKind(), C->clauses()); + if (getSema().OpenACC().ActOnStartStmtDirective(C->getDirectiveKind(), + C->getBeginLoc())) + return StmtError(); + // Transform Loop. SemaOpenACC::AssociatedStmtRAII AssocStmtRAII(getSema().OpenACC(), C->getDirectiveKind()); diff --git a/clang/test/SemaOpenACC/compute-construct-intexpr-clause-ast.cpp b/clang/test/SemaOpenACC/compute-construct-intexpr-clause-ast.cpp index 56c3512dec3b92..2c48fc3ef7746d 100644 --- a/clang/test/SemaOpenACC/compute-construct-intexpr-clause-ast.cpp +++ b/clang/test/SemaOpenACC/compute-construct-intexpr-clause-ast.cpp @@ -435,7 +435,6 @@ void TemplUses(T t, U u) { // CHECK-NEXT: CXXBoolLiteralExpr // CHECK-NEXT: CompoundStmt - // CHECK-NEXT: DeclStmt // CHECK-NEXT: VarDecl{{.*}}EndMarker int EndMarker; @@ -490,7 +489,6 @@ void TemplUses(T t, U u) { // CHECK-NEXT: CXXFunctionalCastExpr{{.*}} 'CorrectConvert' functional cast to struct CorrectConvert // CHECK-NEXT: InitListExpr{{.*}}'CorrectConvert' // CHECK-NEXT: WhileStmt - // CHECK-NEXT: ExprWithCleanups // CHECK-NEXT: CXXBoolLiteralExpr // CHECK-NEXT: CompoundStmt @@ -503,7 +501,6 @@ void TemplUses(T t, U u) { // CHECK-NEXT: CXXFunctionalCastExpr{{.*}} 'HasInt' functional cast to struct HasInt // CHECK-NEXT: InitListExpr{{.*}}'HasInt' // CHECK-NEXT: WhileStmt - // CHECK-NEXT: ExprWithCleanups // CHECK-NEXT: CXXBoolLiteralExpr // CHECK-NEXT: CompoundStmt