<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/100774>100774</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [Clang] Clang crashed when requires expression of lambda references init-capture
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          LYP951018
      </td>
    </tr>
</table>

<pre>
    ```cpp
void test_dependent() {
  auto L = [](auto x) {
    return [w = x](auto) requires requires { w; } {};
  };
  L(0)(1);
}
```
clang++ prog.cc -Wall -Wextra -std=gnu++2b

```
prog.cc:3:13: warning: lambda capture 'w' is not used [-Wunused-lambda-capture]
    3 | return [w = x](auto) requires requires { w; } {};
      | ^
prog.cc:5:4: note: in instantiation of function template specialization 'test_dependent()::(anonymous class)::operator()<int>' requested here
 5 |   L(0)(1);
      |    ^
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /opt/wandbox/clang-head/bin/clang-20 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -dumpdir prog.exe- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name prog.cc -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/home/jail -fcoverage-compilation-dir=/home/jail -nostdinc++ -resource-dir /opt/wandbox/clang-head/lib/clang/20 -I /opt/wandbox/clang-head/include/c++/v1 -I /opt/wandbox/clang-head/include/x86_64-unknown-linux-gnu/c++/v1/ -internal-isystem /opt/wandbox/clang-head/lib/clang/20/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wall -Wextra -std=gnu++2b -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fno-implicit-modules -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics -fansi-escape-codes -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/prog-f91b8e.o -x c++ prog.cc
1.      prog.cc:5:9: current parser token ')'
2.      prog.cc:1:23: parsing function body 'test_dependent'
3.      prog.cc:1:23: in compound statement ('{}')
4.      prog.cc:3:12: instantiating function definition 'test_dependent()::(anonymous class)::operator()(int)::(anonymous class)::operator()<int>'
5.      prog.cc:3:12: LLVM IR generation of declaration 'test_dependent()::(anonymous class)::operator()(int)::(anonymous class)::operator()'
6.      prog.cc:3:12: Mangling declaration 'test_dependent()::(anonymous class)::operator()(int)::(anonymous class)::operator()'
#0 0x0000000002d75d37 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/wandbox/clang-head/bin/clang-20+0x2d75d37)
#1 0x0000000002d73b1e llvm::sys::RunSignalHandlers() (/opt/wandbox/clang-head/bin/clang-20+0x2d73b1e)
#2 0x0000000002d7640f SignalHandler(int) Signals.cpp:0:0
#3 0x00007f0ec61f6420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#4 0x0000000005a7e847 (anonymous namespace)::CXXNameMangler::mangleFunctionEncoding(clang::GlobalDecl) ItaniumMangle.cpp:0:0
#5 0x0000000005a96ac5 (anonymous namespace)::CXXNameMangler::mangleLocalName(clang::GlobalDecl, llvm::SmallVector<llvm::StringRef, 4u> const*) ItaniumMangle.cpp:0:0
#6 0x0000000005a7e88c (anonymous namespace)::CXXNameMangler::mangleFunctionEncoding(clang::GlobalDecl) ItaniumMangle.cpp:0:0
#7 0x0000000005a96ac5 (anonymous namespace)::CXXNameMangler::mangleLocalName(clang::GlobalDecl, llvm::SmallVector<llvm::StringRef, 4u> const*) ItaniumMangle.cpp:0:0
#8 0x0000000005a7e88c (anonymous namespace)::CXXNameMangler::mangleFunctionEncoding(clang::GlobalDecl) ItaniumMangle.cpp:0:0
#9 0x0000000005a96ac5 (anonymous namespace)::CXXNameMangler::mangleLocalName(clang::GlobalDecl, llvm::SmallVector<llvm::StringRef, 4u> const*) ItaniumMangle.cpp:0:0
#10 0x0000000005a7f422 (anonymous namespace)::CXXNameMangler::mangleName(clang::GlobalDecl) ItaniumMangle.cpp:0:0
#11 0x0000000005a8fc22 (anonymous namespace)::CXXNameMangler::mangleExpression(clang::Expr const*, unsigned int, bool)::$_2::operator()(clang::NamedDecl const*) const ItaniumMangle.cpp:0:0
#12 0x0000000005a88ab6 (anonymous namespace)::CXXNameMangler::mangleExpression(clang::Expr const*, unsigned int, bool) ItaniumMangle.cpp:0:0
#13 0x0000000005a8f90d (anonymous namespace)::CXXNameMangler::mangleRequirement(clang::SourceLocation, clang::concepts::Requirement const*) ItaniumMangle.cpp:0:0
#14 0x0000000005a8b377 (anonymous namespace)::CXXNameMangler::mangleExpression(clang::Expr const*, unsigned int, bool) ItaniumMangle.cpp:0:0
#15 0x0000000005a94c62 (anonymous namespace)::CXXNameMangler::mangleBareFunctionType(clang::FunctionProtoType const*, bool, clang::FunctionDecl const*) ItaniumMangle.cpp:0:0
 #16 0x0000000005a7e89b (anonymous namespace)::CXXNameMangler::mangleFunctionEncoding(clang::GlobalDecl) ItaniumMangle.cpp:0:0
 #17 0x0000000005a96ac5 (anonymous namespace)::CXXNameMangler::mangleLocalName(clang::GlobalDecl, llvm::SmallVector<llvm::StringRef, 4u> const*) ItaniumMangle.cpp:0:0
 #18 0x0000000005a7f422 (anonymous namespace)::CXXNameMangler::mangleName(clang::GlobalDecl) ItaniumMangle.cpp:0:0
 #19 0x0000000005a8fc22 (anonymous namespace)::CXXNameMangler::mangleExpression(clang::Expr const*, unsigned int, bool)::$_2::operator()(clang::NamedDecl const*) const ItaniumMangle.cpp:0:0
 #20 0x0000000005a88ab6 (anonymous namespace)::CXXNameMangler::mangleExpression(clang::Expr const*, unsigned int, bool) ItaniumMangle.cpp:0:0
 #21 0x0000000005a8f90d (anonymous namespace)::CXXNameMangler::mangleRequirement(clang::SourceLocation, clang::concepts::Requirement const*) ItaniumMangle.cpp:0:0
 #22 0x0000000005a8b377 (anonymous namespace)::CXXNameMangler::mangleExpression(clang::Expr const*, unsigned int, bool) ItaniumMangle.cpp:0:0
 #23 0x0000000005a94c62 (anonymous namespace)::CXXNameMangler::mangleBareFunctionType(clang::FunctionProtoType const*, bool, clang::FunctionDecl const*) ItaniumMangle.cpp:0:0
...
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWV1v27jS_jXMzYCGRMmWfZELx453C2RfFM1iu--VQVEjmQ1F6pBU4p5ff0DKjj-SbNO0ONvtCZKIoobD5xnOcEYid042GvGSjK_IeHnBe78x9vLm_9_PxmmSTi9KU32-JJNk-BVdR5IlSeb3Rlbg0fl1hR3qCrUnbErYDEhxNYgA8N4buAGSLWFQT9g09m3PBAEs-t7qIPYQ5bcH6SBr8V-9tOgODVJcwQPJroAUy6iqWJLsUeHp3Q1h04SwGWHTNFz2T4LU0NjzG26F4roh7IqwK-isaUZCAP3IlQL6EbfecqDOVyRbNrofxFi5U_Scup0Kks0zks3T8A8euNVSN6GpeFtWHATvfG8RCCseCCtAOtDGQ--wCmahH3sd2nQQpzvxYKZHI2ZAisX3NmX4CWrJ-Pqczphk8zxQ0MZjuEoNUjvPtZfcS6PB1FD3WsS2x7ZT3CO4DoXkSv57kCGseM6RSDYPv2zKtdGfW9M7EIo79_jIdGi5N3YvvpDak-w62C5QQ-exgg1a3DEZRxove8OBarjs2b6_uZ7fXoPry1Z64FD2DVjsjPXgDWy871yEuSJs1Ui_6cuRMC1hK6Xu9xfaWfMJhSdsJZ3r0RG2Aq4rkFqovkLwGwRhudtAycWdt1wgYQvoLHbWCHTBB5zp7dAdRnLnjJA8ULS9Bies7PxogHzrubiDqm-7gCx2JSOSzN5b01jeArdN36L2ATgQtjJdQPbAdVWaLWGr6P50g7wibFVK_djFEqBCpEC9lZ1C2E4n60lOe32nzYOmSup-SxvdA8VWemrKT0ADjEraIY5wixRoJR0vFdLaIgIVCrml3HlaYm0s0mAC1NVBLprwHq2sJdrYLbit6D1XPVLNW3RAWy41raUaOg5R21pURkRHo62pUEEnBdBOCqrwHhWw4UY62kkE2taWt0g7I7VHS7JljPq65X5D0VptgNZ1R4XRYZU8yZZGA621odb0upK6oUEWaCuMdt72whtLuZLcBZh1rx-krqgPxBzJlgyo57ZBT0XXB4PSSQ7U9xpjR4MabQBcYdk3DdrwKO4by6YqgdaxnwrTdlINLCsZYBO22pgWCVt94jIwEOYeLW_wFbLaOF9JLXY7ILU4-F4Q_6K_KFnuuwhbBY9598UxuzAI3cOchK3u068b-ZIvnikNkUfj2mquqHSfncf2q0kdZn5eWe9sGGUEV68UjRM0QhyYHDNIw4yj0dN_z8g-nQ23oSGezvrEekcR_Fejv36KL6bP6MqdRRG2NNpyYUOkobXGUiXD1pvOgNaN7kXYCpw0mmTLfMRG6RB-su2UFNKHKO9VjDV3JztqKkvFBsUdlZo2bR1CYbuluBXYhRgIgic3wihjaSV5E-JAitDHtZMUneBdiJ8qaudVZZ1sgC7X618Wi_Wv8z-u18uP8w8rtl6s3q3nt7-RbJkCNcEavu0IW4VtidaztJziyADdgjitMobNOg2b9WmWDSkPRG8tag8dtw4teHOHMXvGXFYMY9np2JRkcxYLjjBI6uaQjkNh91zu3SnKXlIkNYQtJOx24Dz3GFIJxCRc7IqHAVJUk5-qiQUQG9Q81gnHqCqspZbfsy5g01AXfFM9MVAZv0Tl5uaP3-Ddh2Gzfqx7KhSK2-9a4ryVyp7B5CUGv3HdqLAOPyBowrIEkm2y_2FVMa6yAmJ9FQe6z25ovLdS-1j9_D6UUNODkOUPa-O8Rd4SNgll1ABr8NyvqYEIu0q2OxSPfk5Ylp6hzMoUn0P5ode3stFc_cp1pdC6_YvTW4GEiY6BsDMgkzyp4WTKx0XZdbtReLHL5kn82-vJdnqKOkExSetJzhJYry06byyu7S7qd8nrmVSkZNn5jUVejZwZDXjTPGfJMdr8GO2YFzjNCzhxk1jidXFBd66y-PPP_-MtRrcNVVroa-PNareRXGthQjVG2HRI21HmF2VKrpYoVOD-znMt-3bQ8qwFxqfYZhMuxm_HdhPqgfDsZVCLI4e5bblSf2AoIEm2OOr3VurmA9ZBPO9Jdg2x1iRs_jpWkycWn4ofxeLFT2nx6Q9s8dlPafE0OTN5nTP2dlp_zehVgNJTQNNafAug621n0cUy-ARW6D8y1QJ6HT_wVUO6W0BpjDrKxvmavZC1j5QGDFWgerIIsf0a5uyM-ZSXk7-P-WsQZ-drNUuqtyP-MHxoa4cS6gjybXytvtl9nwgYjx4Ko8Nbyb5oOOj42kg4S7DTMiu-IcH-N8x_nnZzMfmGULni9nHL_P1zdxbH-yfvrfEmPD4hMYA-WZf9gCfx8AViEJg9Tb2z8odIBBHdT5h8I6_z9Pu35oKIaPY_mQwCdZb8o7JBhPwkdf9T00Fkc56Of-x8ECFnP2NCGI1GZ8eFF9VlVs2yGb_Ay7RgLEnTomAXm8skn47HGaKo-DgVIpuwGeZZmlaTySSZlNmFvGQJy5OCTdJJNknZiBUzZGMu8vGYl9U0JXmCLZdqFDbWkbHNRTyJukyTpCjyC8VLVC4eAjO2-87NyHh5YS_j6UvZN47kiZLOu4MKL72KJ8eLOGK8hNgYjrKwgocN6sMxIz56Cph6f-ppsUaLWqADqaXfH2te9FZdvv1wbcfq_pL9JwAA__8GUJEL">