@@ -17232,8 +17232,7 @@ ExprResult Sema::TransformToPotentiallyEvaluated(Expr *E) {
17232
17232
TypeSourceInfo *Sema::TransformToPotentiallyEvaluated(TypeSourceInfo *TInfo) {
17233
17233
assert(isUnevaluatedContext() &&
17234
17234
"Should only transform unevaluated expressions");
17235
- ExprEvalContexts.back().Context =
17236
- ExprEvalContexts[ExprEvalContexts.size() - 2].Context;
17235
+ ExprEvalContexts.back().Context = parentEvaluationContext().Context;
17237
17236
if (isUnevaluatedContext())
17238
17237
return TInfo;
17239
17238
return TransformToPE(*this).TransformType(TInfo);
@@ -17250,14 +17249,13 @@ Sema::PushExpressionEvaluationContext(
17250
17249
// discarded statements or immediate context are themselves
17251
17250
// a discarded statement or an immediate context, respectively.
17252
17251
ExprEvalContexts.back().InDiscardedStatement =
17253
- ExprEvalContexts[ExprEvalContexts.size() - 2]
17254
- .isDiscardedStatementContext();
17252
+ parentEvaluationContext().isDiscardedStatementContext();
17255
17253
17256
17254
// C++23 [expr.const]/p15
17257
17255
// An expression or conversion is in an immediate function context if [...]
17258
17256
// it is a subexpression of a manifestly constant-evaluated expression or
17259
17257
// conversion.
17260
- const auto &Prev = ExprEvalContexts[ExprEvalContexts.size() - 2] ;
17258
+ const auto &Prev = parentEvaluationContext() ;
17261
17259
ExprEvalContexts.back().InImmediateFunctionContext =
17262
17260
Prev.isImmediateFunctionContext() || Prev.isConstantEvaluated();
17263
17261
@@ -17702,7 +17700,7 @@ void Sema::PopExpressionEvaluationContext() {
17702
17700
17703
17701
// Append the collected materialized temporaries into previous context before
17704
17702
// exit if the previous also is a lifetime extending context.
17705
- auto &PrevRecord = ExprEvalContexts[ExprEvalContexts.size() - 2] ;
17703
+ auto &PrevRecord = parentEvaluationContext() ;
17706
17704
if (getLangOpts().CPlusPlus23 && Rec.InLifetimeExtendingContext &&
17707
17705
PrevRecord.InLifetimeExtendingContext &&
17708
17706
!Rec.ForRangeLifetimeExtendTemps.empty()) {
0 commit comments