[clang] Reapply "[Clang][CWG1815] Support lifetime extension of temporary created by aggregate initialization using a default member initializer" (PR #108039)

via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 11 07:42:32 PDT 2024


================
@@ -7810,9 +7813,11 @@ class Sema final : public SemaBase {
   }
 
   bool isInLifetimeExtendingContext() const {
-    assert(!ExprEvalContexts.empty() &&
----------------
yronglin wrote:

Oh, I understand your concern. It's because we use `Sema::currentEvaluationContext()`, it's already has checked that `ExprEvalContexts` is not empty, so I removed assertion in `isInLifetimeExtendingContext`.
```C++
  const ExpressionEvaluationContextRecord &currentEvaluationContext() const {
    assert(!ExprEvalContexts.empty() &&
           "Must be in an expression evaluation context");
    return ExprEvalContexts.back();
  };
```

https://github.com/llvm/llvm-project/pull/108039


More information about the cfe-commits mailing list