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

    <tr>
        <th>Summary</th>
        <td>
            Segmentation fault - lambda capture by value of a 2D variably-modified C style array
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    This, potentially invalid, code causes a segmentation fault on multiple versions of clang both on x86 and ARM platforms. I narrowed it down to trying to capture a C style 2D array by value in a lambda. G++ says unimplemented.

```
int test(const unsigned W, const unsigned H) {
    int tab[H][W];
    auto test = [H=H,W=W,tab=tab] (int x, int y) {
        tab[x][y] = 1;
    };

    test(W-1,H-1);
    return 0;
}
```

```
clang++-14 --std=gnu++20 crash.cpp
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: /usr/lib/llvm-14/bin/clang -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all --mrelax-relocations -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name crash.cpp -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 -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -fcoverage-compilation-dir=/home/pppd/clang-crash -resource-dir /usr/lib/llvm-14/lib/clang/14.0.6 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/backward -internal-isystem /usr/lib/llvm-14/lib/clang/14.0.6/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../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 --std=gnu++20 -fdeprecated-macro -fdebug-compilation-dir=/home/pppd/clang-crash -ferror-limit 19 -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/crash-10fdec.o -x c++ crash.cpp
1.      <eof> parser at end of file
2.      Optimizer
 #0 0x00007fb71bb42dc1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe9edc1)
 #1 0x00007fb71bb40b0e llvm::sys::RunSignalHandlers() (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe9cb0e)
 #2 0x00007fb71bb432fb (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe9f2fb)
 #3 0x00007fb724e34140 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14140)
 #4 0x00007fb71ced441c llvm::LazyCallGraph::Node::populateSlow() (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x223041c)
 #5 0x00007fb71cee1620 llvm::LazyCallGraph::buildRefSCCs() (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x223d620)
 #6 0x00007fb71ce179ad llvm::ModuleToPostOrderCGSCCPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x21739ad)
 #7 0x00007fb71cbcad7d (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x1f26d7d)
 #8 0x00007fb71bcb039e llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x100c39e)
 #9 0x00007fb722e9a253 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x189d253)
#10 0x00007fb722e8d242 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1890242)
#11 0x00007fb7231b5401 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1bb8401)
#12 0x00007fb72202f474 clang::ParseAST(clang::Sema&, bool, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xa32474)
#13 0x00007fb7231b1751 clang::CodeGenAction::ExecuteAction() (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1bb4751)
#14 0x00007fb723b50d97 clang::FrontendAction::Execute() (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x2553d97)
#15 0x00007fb723aa9656 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x24ac656)
#16 0x00007fb723bca3eb clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x25cd3eb)
#17 0x0000000000413dc3 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-14/bin/clang+0x413dc3)
#18 0x000000000041201c (/usr/lib/llvm-14/bin/clang+0x41201c)
#19 0x0000000000411e67 main (/usr/lib/llvm-14/bin/clang+0x411e67)
#20 0x00007fb71a7d8d0a __libc_start_main ./csu/../csu/libc-start.c:308:16
#21 0x000000000040ef1a _start (/usr/lib/llvm-14/bin/clang+0x40ef1a)
clang: error: unable to execute command: Segmentation fault
clang: error: clang frontend command failed due to signal (use -v to see invocation)
Debian clang version 14.0.6-++20221029081924+f28c006a5895-1~exp1~20221029201936.206
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
```

[crash-info.zip](https://github.com/llvm/llvm-project/files/10127490/crash-info.zip)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNWVtv2zgW_jXOC0FDN1_0kAfHTpoC7TZoiumjQZGUzRlZ1FBUYvfX70dKvihx0iSz2F3D0IXkOefjuZJUpsXu8sda1YNoTiptZWkVK4odUeUDK5RwzVwLSThralkTRmq52mAUs0qXJGdNYQkeNrirqpDkQZoaPTXROeEFK1ck03bthmynY8JKQWbfv5KqYDbXZlMPyWdSMmP0oxREWSL0Y0msJtbsFGjxxFllGyMheU5qu4OIaEFAwXYk2xGAbCTAortgm0ywIfk0iK7wJzXb1aQp1QawHGIphoNgMQhm3XUcdH__qkpLrKztIJpywLegrNWqBKqfrQ56bbeDKCWDyVVLS_Dz9CwbjK5uB6MFbj_dLT4ZwRo3L4ggg3hB_MB4AUbzn7g7IY48Xngm6I-mjuXWCXcPu2cS3a-VuG0l7jwdeIc9uYPJEcextZvrTxpCwq27pj0qI6H1kgRHUrA5p7izjd7yrR1omBBKayuAbFU2bWMUEG5YvR7yqmop7r5cz-6vSd1kG7gBI1mzAoZKG-ucYG1tVQ_i2SC6wX-l7LrJhlxv8FIUD_sbrYz-U3LM60bVdSPh1Dfe5VTJiwZObNeylUsyxv-yhnHp_R6CjOayrmHaWjembXaUrK41VwzOQ0xTkpobVdnOj-4tmBDRbCqHzDcF6ErvjF4ZtoGTrhrneA447HnT1MYBVdkebpjgKVMlrm2oUM5DQq3xkYR4WY4TWnFaqLLZUiiPUAntUJ39SejGyIJtKYIV6u1ecNXcR2ZNqFA1ywpJcyMlOBeSGcpqSzOJyJPUaUBihodxHhLCV-VKGt_MmRHURxgt2QbRTzdMlTRXRdtwtGELp5NNN0gYBakUJxQXWsgHvEbti6pxA55NDhVJWmk4tzTwDT-RfMPsmkpjSo2XvKKIO2cmiwFIITQvNTW6KQWSA3VjwciHpmm41ZhfoZhLUzRvykdVCmrd1GCABcRbGERayqvG6ZaO4Ze2KaVvWMkSMwfgjVODs4FklkIDRatDtZXC4XIyavrITOnSExUSfrqSxjFCg3NxkUE611AkW4G33lSqaNUilJsnjL3WGzjYTVVVYm962rolLNj6nxv8ss-0712Q3YTJMBiOCfWaLFkBHe9qKzdH-tbHhsMD6YpzXDsPO7iX4xXsBz65dCHkxLYh7Af_14Seofqf4DgV6ngjiOAM4jX5bzHeUcarnBBgxduG_gcmfWbsc8Fy6x74cwAvm-516veLOFtdaC6Q0yV3mRuJghvtmxCt7w7JvA37QrnCFKZogCBOu4UOyJNhNAxd0G-3AMtl1SXgvPfCdQEuQrFVqWuruGtjQoAJ8shiufw0ny9vZ39cLxc_Z99vouX85vNydv8V_MFbu1lbFBpgc6hoGGA2fIhZbUnnk08rauhq0SCeS50P4mtSMVMjrzNLXNbH6syl8XZk5EZ-A9KN-oVc3K4BBlEckGAb4DfJs0mYZUkkUJ58vUW9i2ewR_twZ2AsXw1_tCV1ehxk2OMS80U6RZUed6sZv5aJpgfnPONq6Pjy5Y-vCJlhrYdYnlwFW5lKIHArlQPE8AnEIAvkOYjfm_IeSzdW3KKqFzCdF_9BFBxCeiiiJyjiKM8-xjoHZY91fMI6SmSchElAlkvUCdQ7ucTy6PdyKruG_oWTE3g5oePSE5OczoBLkSQhP9HjF_ZrN0eF_mRYtW6b_oUi3z5VumoQT_K-0I8fV2sEf4PQHqpRH5UMxwjtV1FljSrEd5nfz-f_wMTAIiCqh2XcxxJOUiZOsHzVoinkD30HZ_9mhDTzT8Bwh_XjTGAHo00XDk3ZC4-WrIuMY_MMnrqrVf2VlVhFgHb-jCS-9lQfm184iQG_N79Jb34ZZ2IiPsI7zKMxSHu8p734QPjE6WmUOi29MtP3a4Y47fwf6TsMAo4p93SSngZ2JFMWjeI38O5KU1V57knLfpoKUB_Yu7wY9NlPRZRE7Ya8ndU1qtlVuwX41tiq8RvfY_fiWKeuy5Uq9yo7GXKLlCLNPbYVfP2tK3N-Lf586By54pMsfzPqh1-f_2bQFzydG3K01z32T-UKOaDfvLf87AnDTgkz7ni6Pr-YcD1Y0v_dyGVl-_7gKlr1aJSVy31dOyES0p-JLLEDklb-hrDz1Dc51QuGD2DXnuFPKyJes1EShB9ln2VTUPfYRz2_CqI8mSSn6rxzy4zZ_Y--O93LDesMlWldHO8fnTmLIwjuIYufTDycjMIzTtgZug2CreSNlXvbv7FcvKCqBPJ6gJIeoGwUiHRyCujGYHN7dL1TRP8ISzQaxRDVwzLqYWEsHY_GfeW4RbE0nxFRrOTyvH5eBv_W1HgWb8I44PTwjvu64yyWWS99tciOsB-6w4c-ymfTcuH_cb1yARg9nPuq2f6SMBY8JpyHS3dS0qs8M3dk6bJSPOdrZvbJa-YTADJSrw0ND9qdvp7A_e3xkQfZQuhhnD7BGAVY272PpyPp8Uyf8AzleELcnN_J2NGdMo56ew42EVMRMKx3nUmQNZmxXrPEbVB53ez3qu2jG0T9oCGHxuNgims4PjIP-6gDmYdg7ineh9tTHnDvHY74naJ7aEp3bOROLmXrqDDtZoOth-u8f3aC_hKb9lQw70JtzwM08GlBROMl1H5f4_A3NTbDD75NukPxY0x0QBcyU6zs2HYbWNKeQND91jmKwiBKg2mYRs7tc8RTEIzZaJqOaDiYXMtt5W77gfCMNB4Po6BTc1vEHfgz55fdEL8bIf6U0A2sdK22bZeP0wKTWyjTOzV1Fnjl9Hl01W6LVZnr4S9VuQPxaPruU2O3Ja79mUgYTZI0OGy3D3z3mryQl-F4nE6TJAmmF-ISCRcr6gurbCEvnxuY0O7zxOFzxuHbBXbizH3SeGBGwWl27vTUHcGKw_cO_7HjojHF5cePwUdpNIku1pdSTKY5G8V8wkM-GY8m0ygfB6MszbJc8CS_KFgmi_oSGh1EUSkfiWeBZ6j0Ql16s4dxEIVxOpoOp5M0zDMxyiT2C9k0GiAyEJ_F0OEYarO6MJceUtasanQWqrb1sRPrfvc9RXpx4M8au9bmslK6Yo9Fc-FlX3rs_waIBxlu">