Skip to content

Commit 2a9bd94

Browse files
committed
Only use a single CXXExpansionSelectExpr
1 parent 48718a4 commit 2a9bd94

File tree

3 files changed

+8
-11
lines changed

3 files changed

+8
-11
lines changed

clang/include/clang/Sema/Sema.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15659,8 +15659,7 @@ class Sema final : public SemaBase {
1565915659
SourceLocation ColonLoc,
1566015660
SourceLocation RParenLoc);
1566115661

15662-
ExprResult BuildCXXExpansionInitListSelectExpr(InitListExpr *Range,
15663-
Expr *Idx);
15662+
ExprResult BuildCXXExpansionSelectExpr(InitListExpr *Range, Expr *Idx);
1566415663

1566515664
std::optional<uint64_t>
1566615665
ComputeExpansionSize(CXXExpansionStmtPattern *Expansion);

clang/lib/Sema/SemaExpand.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ static auto InitListContainsPack(const InitListExpr *ILE) {
5050
static bool HasDependentSize(const CXXExpansionStmtPattern *Pattern) {
5151
switch (Pattern->getKind()) {
5252
case CXXExpansionStmtPattern::ExpansionStmtKind::Enumerating: {
53-
auto *SelectExpr = cast<CXXExpansionInitListSelectExpr>(
53+
auto *SelectExpr = cast<CXXExpansionSelectExpr>(
5454
Pattern->getExpansionVariable()->getInit());
5555
return InitListContainsPack(SelectExpr->getRangeExpr());
5656
}
@@ -123,7 +123,7 @@ StmtResult Sema::ActOnCXXExpansionStmtPattern(
123123
if (auto *ILE = dyn_cast<InitListExpr>(ExpansionInitializer)) {
124124
assert(ILE->isSyntacticForm());
125125
ExprResult Initializer =
126-
BuildCXXExpansionInitListSelectExpr(ILE, BuildIndexDRE(*this, ESD));
126+
BuildCXXExpansionSelectExpr(ILE, BuildIndexDRE(*this, ESD));
127127
if (FinaliseExpansionVar(*this, ExpansionVar, Initializer))
128128
return StmtError();
129129

@@ -219,11 +219,9 @@ StmtResult Sema::FinishCXXExpansionStmt(Stmt *Exp, Stmt *Body) {
219219
return Expansion;
220220
}
221221

222-
ExprResult
223-
Sema::BuildCXXExpansionInitListSelectExpr(InitListExpr *Range,
224-
Expr *Idx) {
222+
ExprResult Sema::BuildCXXExpansionSelectExpr(InitListExpr *Range, Expr *Idx) {
225223
if (Idx->isValueDependent() || InitListContainsPack(Range))
226-
return new (Context) CXXExpansionInitListSelectExpr(Context, Range, Idx);
224+
return new (Context) CXXExpansionSelectExpr(Context, Range, Idx);
227225

228226
// The index is a DRE to a template parameter; we should never
229227
// fail to evaluate it.
@@ -240,7 +238,7 @@ Sema::ComputeExpansionSize(CXXExpansionStmtPattern *Expansion) {
240238
assert(!HasDependentSize(Expansion));
241239

242240
if (Expansion->isEnumerating())
243-
return cast<CXXExpansionInitListSelectExpr>(
241+
return cast<CXXExpansionSelectExpr>(
244242
Expansion->getExpansionVariable()->getInit())
245243
->getRangeExpr()
246244
->getNumInits();

clang/lib/Sema/TreeTransform.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9381,8 +9381,8 @@ ExprResult TreeTransform<Derived>::TransformCXXExpansionSelectExpr(
93819381
Idx.get() == E->getIndexExpr())
93829382
return E;
93839383

9384-
return SemaRef.BuildCXXExpansionSelectExpr(
9385-
Range.getAs<InitListExpr>(), Idx.get());
9384+
return SemaRef.BuildCXXExpansionSelectExpr(Range.getAs<InitListExpr>(),
9385+
Idx.get());
93869386
}
93879387

93889388
template<typename Derived>

0 commit comments

Comments
 (0)