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

    <tr>
        <th>Summary</th>
        <td>
            Crash in `clang::CodeGen::CodeGenModule::EmitTopLevelDecl(Decl*)` when using constexpr generated `std::string` in toplevel `asm` statement
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          apache-hb
      </td>
    </tr>
</table>

<pre>
    Full stacktrace, only works in c++26 mode with a very large `-fconstexpr-step=` limit.
```
0.      Program arguments: /opt/compiler-explorer/clang-trunk-20250426/bin/clang-21 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -dumpdir /app/output.s- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name example.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -fno-verbose-asm -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debug-info-kind=constructor -dwarf-version=4 -debugger-tuning=gdb -fdebug-compilation-dir=/app -fcoverage-compilation-dir=/app -resource-dir /opt/compiler-explorer/clang-trunk-20250426/lib/clang/21 -isystem /opt/compiler-explorer/libs/fmt/trunk/include -internal-isystem /opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/16.0.0/../../../../include/c++/16.0.0 -internal-isystem /opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/16.0.0/../../../../include/c++/16.0.0/x86_64-linux-gnu -internal-isystem /opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/16.0.0/../../../../include/c++/16.0.0/backward -internal-isystem /opt/compiler-explorer/clang-trunk-20250426/lib/clang/21/include -internal-isystem /usr/local/include -internal-isystem /opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/16.0.0/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++26 -fdeprecated-macro -fconstexpr-steps=99999999 -ferror-limit 19 -fgnuc-version=4.2.1 -fno-implicit-modules -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/example-456c4d.o -x c++ <source>
1.      <eof> parser at end of file
2.      <source>:28:1: LLVM IR generation of declaration
 #0 0x0000000003bd83d8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-trunk-20250426/bin/clang-21+0x3bd83d8)
 #1 0x0000000003bd5f94 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #2 0x000074c8b2242520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x000074c8b23a0d30 (/lib/x86_64-linux-gnu/libc.so.6+0x1a0d30)
 #4 0x000074c8b274c104 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_mutate(unsigned long, unsigned long, char const*, unsigned long) (/lib/x86_64-linux-gnu/libstdc++.so.6+0x14c104)
 #5 0x000074c8b274db50 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_append(char const*, unsigned long) (/lib/x86_64-linux-gnu/libstdc++.so.6+0x14db50)
 #6 0x000000000415ad50 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) (.part.0) CodeGenModule.cpp:0:0
 #7 0x000000000451650e (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) ModuleBuilder.cpp:0:0
 #8 0x0000000004500389 clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) (/opt/compiler-explorer/clang-trunk-20250426/bin/clang-21+0x4500389)
 #9 0x0000000006147584 clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-trunk-20250426/bin/clang-21+0x6147584)
#10 0x0000000004513b2d clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-trunk-20250426/bin/clang-21+0x4513b2d)
#11 0x000000000482266a clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-trunk-20250426/bin/clang-21+0x482266a)
#12 0x000000000479eaab clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-trunk-20250426/bin/clang-21+0x479eaab)
#13 0x0000000004912773 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-trunk-20250426/bin/clang-21+0x4912773)
#14 0x0000000000db4311 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-trunk-20250426/bin/clang-21+0xdb4311)
#15 0x0000000000dac4bd ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#16 0x0000000000daf310 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-trunk-20250426/bin/clang-21+0xdaf310)
#17 0x0000000000c325a4 main (/opt/compiler-explorer/clang-trunk-20250426/bin/clang-21+0xc325a4)
#18 0x000074c8b2229d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#19 0x000074c8b2229e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#20 0x0000000000dabf55 _start (/opt/compiler-explorer/clang-trunk-20250426/bin/clang-21+0xdabf55)
clang++: error: unable to execute command: Segmentation fault (core dumped)
clang++: error: clang frontend command failed due to signal (use -v to see invocation)
```
[Godbolt reproducer](https://godbolt.org/z/rcahb4W6W)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMmF9v2zgSwD8N80LQkKg_th784Nh1t8AWWGyK9tGgyJHMDUUKJOU49-kPpJTITnLd9jaHa9AmFk3O_GY4nBmKOSdbDbBGxS0qdjds8Edj16xn_AjkWN_URjyu94NS2HnG771lHBDdYqPVI34w9t5hqTFH9BbRW1rizgjAD9IfMcMnsI9YMdsCRmVCGm6083DuLXEeepTtUJlgJTvpFyjZoDKZ_iWbZIGS6g9rWss6zGw7dKC9Q9kGI7o3vUd0z03XSwWWwLlXxoINY4rplng76HtCE1okOS0R3ddSP39JU0w4TzHxVvYK8HlVHsqcDPpemwdNlNTDmbR6wAQ66Ymp_8JEDF0vpA26Wd8HgsH3g184gomQjtUKSGMBMOEKmCXMeVJDYyyQmvF70GKep9SpIyewspFg4zBnVpATUwMQzTpwmHRMatJINQ5gOLOuV7DgfY9JZ0EZzrw0mgRfK9xLjkkvOVFwAoXp-CAd6SVg0jWWdUB6I7UHi7IdUwqTpmP-SMBabTBpmp5wo8PWepTtjMak0YZYM2ghdUvC3HHoBLY2DghzHSZd3E47cG8sYUoyF9ibQT9ILYgP1jqU7SgmPoSAJ7wfgrtJmWPiBw1xoAUNNlggoB5aInVjyL3UAmW7C_mYiAdmmwDgpNEo2-XTihZsECZ1i7JdK2pMmlHSGB-jo4QMlo_bh0McnsCyFr4zx4Izg-VApn3_6ZhTsn76EtF9iDrpHp2H7vvSlKwdovumCxOiUET3UnM1CMAk7qFm6sdktZwTp1nvjsY_E7WcI7qfov452hHdp-UiWSSI7heL178mgqBoPOnPC35JqDeE_aqcIUE8MCt-lu8Hw-7vomdwMeoMZ-qXCLQ35r-GgnP4wF_bMXv6O9v_xuqfV4GJ8zFHPRe-kHd6C5x5EKRj3Br8suKFdFhNP5g0YK2xJNY_nIaBVg_8MsUt6CIdE6_seiW59CHlDyrmWXcve2KEJfwI_J5ITdquCSrPZwJnDn3IamHi1QM3ylgiJGu1cV7yMMaEsE62mOwOh4_b7eG3zdcPh923zZ97etjuPx02d59RtksxMcENvgsVcKpJJC9KnouFweT81ARglG3H5ImyDyjZpKGWo2wLpkHZB9wz68Bi5nGoi6bBodChZEOnafPSbENXKNukoez__vvXz_jTn2O5iAk7LBXAFRsfURJ6gyzByTl5-slqscrECoeai7INyjbu0Y0f_rBS-7vQ0XwZO5rVPMmyh4Nx3gLrUDhUWyy1R7TCiK7-efuB6G1ynsgQrSbu9AV30VQ5vpOtZuo3poUK8lcRY4udbEOZPHhEN-H5ZKSIH6tphQutAso2Sfw_KqCTgmXOVzWlOS1oMhk0ntc3Tp6SNV84sygjc1wyE2dXAjOWiOwnBaZxzSwxv5K4zHma5Dges7ArhwM_n9N0fKiZk_zgvI11f8uPzEbPPE0OAwdvmQxN4_h19uFqBlOxjTL24vsYc0HV50M3eOZDWAw6NsgCKxNS6ha_GgircTzo0368mFH9gFecF9PpuXBPdMDsnuKFe0RdJP8v97C-By0QXf3vjA_mzcaXl-cjTwsmigSPZS4ybY2Aj6CvHj7HXDkOfeik_2L630OLvAOuAvq8ehzZTLiLnlkfKlSFryS9caqWV1hFWhYJBBFMG_3YmcHh2NL3McVUV3QhjRn7qevVODwe8-8zfrRm6P-EJqCNTLeDVALsG2ira7QkyVbVpcdux5vJ1mg3dOFm8N9AvF9GnAjnHa8u-cs0Xxar_JL_j1BHNndfrgHvoGNT0q6NUfPf92SdaEbWkLyTF2GQ1VS8EZ0bHivVGJBn4IOHaSigva83I8NMeFVf8hWlZckuCffWaA9avIH4_nCj-hmOXsEtK2CsvnbfqO6Tdp5pDm978D9bE0De1YARcTYguzKgSulymV0aMKHOdpymK_w19is7n1PSe4GPaDN4fgmeiDoPkcJ5euhYWH3RFG2sZY_h1I_1YM75Y-F4VQcumpL34x8BZ_ziGp_xvBb4ydnb9Es8-RdG3HVMqa_AnxPvG7bE3DEvCTK2IZrO_mlejCZh5elV3g1M5QumJqSHaMWTU6c2bqzKm8lff6_xHd0YoWY3XlWxhGe0YDkOsO-oc5Q661xd96O0EtVPto9xySyweikQ8gQfDmHNwXlm_eHCoh9WAfmsgiYvtrZuigKPwt91d4LcUet0kY8vDbINjjfG8GHQrFaAvcEwRjvmpuuYDt0bvoO2A-3HW1LDBhXpuLGAxdD1IL4vO47jZkqhT4Jxw6QCgcUQ1bp40QhyBweYnOIYAJYXqa168VIXFbcfjaiN8thCb40YOFhU7BBdHb3v482M7hHdt-OshbEtovt_Ibq3nB3r_Fv5DdHqRqwzUWUVu4F1usyLcpkXq-TmuAaWFEle0TQRNUvzFStZlrMlXVXLLKmW2Y1cP3k-zbKSJos8bZY5W0KVVkW-ZBXKE-iYVItwGoP6G-ncAOs0W-ZFdaNYDcrFV-WUTu6jqNjd2HV8rVsPrUN5oqTzbhbhpVew3lrmjjgEYJn8s751blZRmeCHI2g8OKlb_Pyy4emWDCJoe-7pp_tAmQQMb_rxfTEqE-a6MOrClSdEzs1g1frFlkh_HOoFN104JCFXjX9Ib81fwEPUR1c5RPeTt05r-u8AAAD__99CiTA">