[clang] [Clang] Rebuild lambda captures in default member initializers while skipping body (PR #196597)
Eli Friedman via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 16 22:02:37 PDT 2026
efriedma-quic wrote:
For that testcase, AST excerpt for clang 22:
```
| `-CXXDestructorDecl <col:32> col:32 implicit used ~(lambda at line:19:32) 'void () noexcept' inline default
| `-CompoundStmt <col:32>
|-CXXConstructExpr <col:38, col:41> 'std::string':'std::basic_string<char>' 'void (const basic_string<char> &)'
| `-ImplicitCastExpr <col:38, col:41> 'const basic_string<char>' lvalue <NoOp>
| `-MemberExpr <col:38, col:41> 'std::string':'std::basic_string<char>' lvalue .s 0x3a991ef0
| `-MemberExpr <col:38> 'NonTrivial' lvalue ->nt 0x3a9a0148
| `-CXXThisExpr <col:38> 'S *' implicit this
```
and for main:
```
| `-CXXDestructorDecl <col:32> col:32 implicit used ~(lambda at line:19:32) 'void () noexcept' inline default
| `-CompoundStmt <col:32>
|-MemberExpr <col:38, col:41> 'std::string':'std::basic_string<char>' lvalue .s 0x11629f50
| `-MemberExpr <col:38> 'NonTrivial' lvalue ->nt 0x11634e08
| `-CXXThisExpr <col:38> 'S *' implicit this
```
I guess we're missing code to construct an InitializationSequence for the lambda capture.
https://github.com/llvm/llvm-project/pull/196597
More information about the cfe-commits
mailing list