[clang] [Sema] Fix lifetime extension for temporaries in range-based for loops in C++23 (PR #145164)
Marco Vitale via cfe-commits
cfe-commits at lists.llvm.org
Sat Jun 28 01:18:30 PDT 2025
================
@@ -1585,6 +1590,20 @@ class VarDecl : public DeclaratorDecl, public Redeclarable<VarDecl> {
NonParmVarDeclBits.IsCXXCondDecl = true;
}
+ /// Determine whether this variable is the compiler-generated '__range'
+ /// variable used to hold the range expression in a C++11 and later for-range
+ /// statement.
+ bool isCXXForRangeImplicitVar() const {
+ return isa<ParmVarDecl>(this) ? false
+ : NonParmVarDeclBits.IsCXXForRangeImplicitVar;
+ }
+
+ void setCXXForRangeImplicitVar(bool FRV) {
+ assert(!isa<ParmVarDecl>(this) &&
+ "Cannot set IsCXXForRangeRangeVar on ParmVarDecl");
----------------
mrcvtl wrote:
Also here should be `Cannot set IsCXXForRangeRangeVar...`.
https://github.com/llvm/llvm-project/pull/145164
More information about the cfe-commits
mailing list