[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 ¤tEvaluationContext() 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