Skip to content

Commit 2850033

Browse files
committed
[Clang][OpenMP] Fix the wrong transform of num_teams claused introduced in #99732
1 parent 3696a34 commit 2850033

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

clang/lib/Sema/TreeTransform.h

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11018,11 +11018,16 @@ TreeTransform<Derived>::TransformOMPAllocateClause(OMPAllocateClause *C) {
1101811018
template <typename Derived>
1101911019
OMPClause *
1102011020
TreeTransform<Derived>::TransformOMPNumTeamsClause(OMPNumTeamsClause *C) {
11021-
ExprResult E = getDerived().TransformExpr(C->getNumTeams().front());
11022-
if (E.isInvalid())
11023-
return nullptr;
11021+
llvm::SmallVector<Expr *, 3> Vars;
11022+
Vars.reserve(C->varlist_size());
11023+
for (auto *VE : C->varlist()) {
11024+
ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
11025+
if (EVar.isInvalid())
11026+
return nullptr;
11027+
Vars.push_back(EVar.get());
11028+
}
1102411029
return getDerived().RebuildOMPNumTeamsClause(
11025-
E.get(), C->getBeginLoc(), C->getLParenLoc(), C->getEndLoc());
11030+
Vars, C->getBeginLoc(), C->getLParenLoc(), C->getEndLoc());
1102611031
}
1102711032

1102811033
template <typename Derived>

0 commit comments

Comments
 (0)