aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Parse/ParseDecl.cpp
diff options
context:
space:
mode:
authoryronglin <yronglin777@gmail.com>2024-09-08 22:36:49 +0800
committerGitHub <noreply@github.com>2024-09-08 22:36:49 +0800
commit45c8766973bb3bb73dd8d996231e114dcf45df9f (patch)
tree6ed8a689d0df40dd9370ba77635b058e9583c705 /clang/lib/Parse/ParseDecl.cpp
parentdec0781c8b06b1a5b8ad8646d299f643745a36d0 (diff)
downloadllvm-45c8766973bb3bb73dd8d996231e114dcf45df9f.zip
llvm-45c8766973bb3bb73dd8d996231e114dcf45df9f.tar.gz
llvm-45c8766973bb3bb73dd8d996231e114dcf45df9f.tar.bz2
Reapply "[Clang][CWG1815] Support lifetime extension of temporary created by aggregate initialization using a default member initializer" (#97308)
The PR reapply https://github.com/llvm/llvm-project/pull/92527. Implemented CWG1815 and fixed the bugs mentioned in the comments of https://github.com/llvm/llvm-project/pull/92527 and https://github.com/llvm/llvm-project/pull/87933. The reason why the original PR was reverted was that errors might occur during the rebuild. --------- Signed-off-by: yronglin <yronglin777@gmail.com>
Diffstat (limited to 'clang/lib/Parse/ParseDecl.cpp')
-rw-r--r--clang/lib/Parse/ParseDecl.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp
index 61a1ca3d..1f56884 100644
--- a/clang/lib/Parse/ParseDecl.cpp
+++ b/clang/lib/Parse/ParseDecl.cpp
@@ -2509,8 +2509,9 @@ Parser::DeclGroupPtrTy Parser::ParseDeclGroup(ParsingDeclSpec &DS,
// P2718R0 - Lifetime extension in range-based for loops.
if (getLangOpts().CPlusPlus23) {
- auto &LastRecord = Actions.ExprEvalContexts.back();
+ auto &LastRecord = Actions.currentEvaluationContext();
LastRecord.InLifetimeExtendingContext = true;
+ LastRecord.RebuildDefaultArgOrDefaultInit = true;
}
if (getLangOpts().OpenMP)