<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/129021>129021</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang++-21 crashed when using precompiled header
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
sweihub
</td>
</tr>
</table>
<pre>
Hi
I have a cmake setup with precompiled headers
```cmake
# add the pch custom target as a dependency
add_dependencies(demo pch)
# add the flag
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -include-pch ${CMAKE_CURRENT_BINARY_DIR}/stdinc.h.pch")
# target
add_custom_target(pch COMMAND ${CMAKE_CXX_COMPILER} -std=c++26 -x c++-header ${CMAKE_CURRENT_SOURCE_DIR}/include/coin/stdinc.h -o ${CMAKE_CURRENT_BINARY_DIR}/stdinc.h.pch)
```
clang++-21 crashed when compiling
```log
➜ coin git:(develop) ✗ b
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: /root/quant/algo/coin/build
[2/4] Building CXX object CMakeFiles/demo.dir/src/binance.cppm.o
FAILED: CMakeFiles/demo.dir/src/binance.cppm.o CMakeFiles/demo.dir/binance.pcm
/usr/bin/clang++-21 -I/root/quant/algo/coin/include -include-pch /root/quant/algo/coin/build/stdinc.h.pch -g -std=c++26 -MD -MT CMakeFiles/demo.dir/src/binance.cppm.o -MF CMakeFiles/demo.dir/src/binance.cppm.o.d @CMakeFiles/demo.dir/src/binance.cppm.o.modmap -o CMakeFiles/demo.dir/src/binance.cppm.o -c /root/quant/algo/coin/src/binance.cppm
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-21/bin/clang -cc1 -triple x86_64-pc-linux-gnu -emit-obj -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name binance.cppm -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 -debug-info-kind=constructor -dwarf-version=5 -debugger-tuning=gdb -fdebug-compilation-dir=/root/quant/algo/coin/build -fcoverage-compilation-dir=/root/quant/algo/coin/build -resource-dir /usr/lib/llvm-21/lib/clang/21 -std=c++26 -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fno-implicit-modules -fmodule-file=websocket=CMakeFiles/demo.dir/websocket.pcm -fmodule-file=json=CMakeFiles/demo.dir/json.pcm -fmodule-file=web=CMakeFiles/demo.dir/web.pcm -fmodule-file=semaphore=CMakeFiles/demo.dir/semaphore.pcm -fmodule-file=ws=CMakeFiles/demo.dir/ws.pcm -fmodule-file=wss=CMakeFiles/demo.dir/wss.pcm -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/demo.dir/src/binance.cppm.o -x pcm CMakeFiles/demo.dir/binance.pcm
#0 0x00007f53018cbfef llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-21/bin/../lib/libLLVM.so.21.0+0x102efef)
#1 0x00007f53018c9cf9 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-21/bin/../lib/libLLVM.so.21.0+0x102ccf9)
#2 0x00007f53018cc70d (/usr/lib/llvm-21/bin/../lib/libLLVM.so.21.0+0x102f70d)
#3 0x00007f5300330330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
#4 0x00007f530b73506a clang::ASTReader::getLocalModuleFile(clang::serialization::ModuleFile&, unsigned int) const (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.0+0x253406a)
#5 0x00007f530b7bbebb (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.0+0x25baebb)
#6 0x00007f530b7ba2c9 clang::ASTReader::loadDeclUpdateRecords(clang::ASTReader::PendingUpdateRecord&) (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.0+0x25b92c9)
#7 0x00007f530b769056 clang::ASTReader::finishPendingActions() (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.0+0x2568056)
#8 0x00007f530b76c91b clang::ASTReader::FinishedDeserializing() (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.0+0x256b91b)
#9 0x00007f530b75050a clang::ASTReader::ReadAST(llvm::StringRef, clang::serialization::ModuleKind, clang::SourceLocation, unsigned int, clang::serialization::ModuleFile**) (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.0+0x254f50a)
#10 0x00007f530b8b1b22 clang::ASTUnit::LoadFromASTFile(llvm::StringRef, clang::PCHContainerReader const&, clang::ASTUnit::WhatToLoad, llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>, clang::FileSystemOptions const&, std::shared_ptr<clang::HeaderSearchOptions>, std::shared_ptr<clang::LangOptions>, bool, clang::CaptureDiagsKind, bool, bool, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.0+0x26b0b22)
#11 0x00007f530b94dedd clang::FrontendAction::BeginSourceFile(clang::CompilerInstance&, clang::FrontendInputFile const&) (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.0+0x274cedd)
#12 0x00007f530b8cafd5 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.0+0x26c9fd5)
#13 0x00007f530b9d522c clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.0+0x27d422c)
#14 0x00005583f62bd72f cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-21/bin/clang+0x1372f)
#15 0x00005583f62ba5b4 (/usr/lib/llvm-21/bin/clang+0x105b4)
#16 0x00005583f62b99e2 clang_main(int, char**, llvm::ToolContext const&) (/usr/lib/llvm-21/bin/clang+0xf9e2)
#17 0x00005583f62c6f23 main (/usr/lib/llvm-21/bin/clang+0x1cf23)
#18 0x00007f53003151ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
#19 0x00007f530031528b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
#20 0x00005583f62b8415 _start (/usr/lib/llvm-21/bin/clang+0xe415)
clang++-21: error: unable to execute command: Segmentation fault (core dumped)
clang++-21: error: clang frontend command failed due to signal (use -v to see invocation)
Ubuntu clang version 21.0.0 (++20250224081945+0770afb88ec1-1~exp1~20250224082103.749)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-21/bin
clang++-21: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang++-21: note: diagnostic msg: /tmp/binance-cb89ea.cppm
clang++-21: note: diagnostic msg: /tmp/binance-cb89ea.sh
clang++-21: note: diagnostic msg:
********************
ninja: build stopped: subcommand failed.
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysWUtzozrT_jVko5ILhLHNIgviy0zqJJNUnDlnvpVLSA3WBCQ-SSSed3F--1sSOL5Mbp43KVcFhLr76Vb3I9FQY0QpAc6D5CJIZme0tWulz80TiHWbn-WK_zr_KoIwC8LsEq3pIyCKWE0fABmwbYOehF2jRgNTdSMq4GgNlIM2TmQUdj8_3w2QGFHOkV0DatgasdZYVSNLdQkWUYMo4tCA5CDZryDMKOer5wEBJiATDrVysgFJO1D7OouKlkGYGbABmUyvs7_mq-mPH6vFVfZliQJCAjIMxhdHD4LxDGEhWdVywA7Vwazvd3fzb_eri8tv2d3_rWaXd8F4FpCFsVxINlgPPBRygKZzp4ffubjqx8jEGZjeXF9n32boGM705vr28mp-5xEZy4N4xgJyEZALMkJ4g_ob3EX4RZzLm-930_kOZ-9XQBZMCbkHHGH1B46m-6vaecwqKsseGIkQ09SsgaOnNUjU5YSQZR-crWSl_MicBOk8SKcIOXCoFDaIM7_Gj1CpJiAp8nOmQTpGeRBmGKOpkoUoWy1kibiSgAIyCQeh6bBhjL6ABE3tq88vWlFxVIgKTJfOOYBET1pYCxJZFcQZCshCK2UDsvj_lkr3n1al2gUxdzqcB8kFCchiGCSzTq-zOv3xA6n8JzCLptf0ARbOVEAWLnMHXGgXVM2cFiGpZDBgTVMPVBBmi-zyaj5zAE4RfHXydlrDap-Zi9b0w86Tw2VD-PI9p_tUOq6Vj0TqMI0QLl9I7-sZwtf3p3mOrxcnCQw4CobhSRK14jVtXLWchoy9G5rf5YIwu72aZ8s5Mm1eC4soytsSaWiUtsgqtLa2Mb5GFgFZlMKu23zAVB2QRVU9bv_hRiuXfm7NjGk9XkQlR9sVdFTp6xTllD1YTRkEZOpIvNGKgTHAkVGt7oadJDVGMUEtcKRbiQzTorGDIMyWlrIHxNu6cbDCLBwg_3erValpjagu2xqkNX1ZdSlYiXyLlUSHKYkwYxHCVoumArSZjFajIW4YroRsN7iULcJQC4tV_hNhLgzNK8CFBkCYVUA1psbiHAqlATvvQPLdPG_xEbQoBGg_zKjm-JFWLWBJazAI11RI7OjBD6D99UG41lApRq1QEteKQ4UawRBuBMOVIy1EuhthcCMA4brQtAbcKCEt6CCe0apCuKipXWPQWiqEi6LBTEm3CjaIZ0oiXEiFtWqloxPs5iJcMyWN1S2zSmNaCWoc1qKVT0JybJ13JohnBOFup8GsaV308GiIsG0l-IHScaMDzCFvSyxkofCDkL4Sd_oR5k9UFy5QRigZxLOklyhBO2WO0ONZyXOEi05TR_RdXFxVxLMPEQPCBVOPoGkJf65CQ5erTur1FOvue9ZbkOgFBio4uHOMy3JcU6bd4oDWSuNKuGqMUoSLUrZsLzLDARlE3YqJuqkEE9YlRlv55emufDYF8ewJcqPYA7hlfo1Mnuc41v5Nw0_jjb4m7B6_KPcE-ds2X5QyUNNmrTS8Ifs852W75i2z5hWZt4W2UuZBNFhxjdka2AMWEpd14RJqs8GwYdC4THKLcHBDOddGlAjPVqsv0-nqa_b3fDX7J7tbkNV0cbnKltdBPItO5_sNcrA-thWjgMQhCjdhGIbjIonDaMLyAgrkSTzOgjgzv0x3cauFtJ5l7zuenuwmafq0UsZqoHVARo6rhSuT1J153uHawWD3SORXV39fD4wakGgQBuQi3EQhgQKK7tDk4EZHcFNWpC_BvWvlUpSSVl-p5JV7DXBQPgcRY0W6Q0SOELFxyD_FTDEO-c5MvG8mjGP36810Wvot6nl_6h4wp3XkVQ6TOA53Cof7CvNxnIQjijpe8hHMlvd3_nzf3ZZgrxSj1bUvEpdaAZnsTTegBa3EfzxxdkP7U31WtNK_4_FteniuPzlW3ihmTXMQMJLEw3BEd_4lh_7lOeT5p9nKKeT5ztboyBYlLH0jlpWifAas-t5wauEOmNLcHIbzSOIW_Ca8L-BjenpCv-pRStheVo8PPRqlYTJ6w6NCSGHWPcqMeZb7w4p7DeBoEiajHcDJEUCWRvkbABceIPAZbBPVHR4-GWGeRntJkR4iTMIkfKvA3HW2vD8g1qV175d3jgCn6CPF9pc7RB3OXfpDyVV_Wvy9DD-muKvizP8-L2LDIgn7knXcfrAX5ZM8ygk5ith32b2cx9mVonyhVZ0t73s2ej9ut9OvUyUtFRJ0F_uOg3p-es3UP2tq75Uz6GbtzFxKq1sjHuEOiqm0t1YH8XRPyUzQUipjBTNzWQoJQTw_suOgL38ZC_VNfzbYB-SPhn5d1lQDXzXHFr56J5ZANVv3Cnob74peUVkeiuRKVUfwprSxrQbniNnm1nba9v878dg9fizMsdPe8qfl0ygP8-ceGImjg8NCng45cH4QfK2kBck7wurGLqAUsquZ3ze5addb1JfSWHeO-j1vtiovZdNap2BvPT_Nz_GQAec7P8lh3TBa8AS9BduPzjfAWgu98wd-HgXmU8GPWFrwZAc-PlwknhDC9sH3MHc-PD5T2dtL85lMNeZDQtgO9PbwlCSTuBiRnI9JgRiLVu6t_YCKMq3pL8dE8ZSt6TPfZFsqOBgjU_SoBP8w9m3zLNxE8ZgUO3zJET6a5MPT9IVJPtzpGx3pS1PomXnr8XYvWVO93Sf2qeFeqcpRL2zsiRWxw1SksFfc40NIbFSQGDkwp_nJChLvlE4OT9lREjF62imb0IjtbWnpsUIyydFq5WRWxlJtV3uQP2yCTPJnEyQ8WpvJMEpQp_ykUMAw6svysCcbxBny7Qd30UqaV4CsQtDVJWKqrql0mw1aQlmDtL46UUHbygNgSoPvzAF_V33Xeit6-tnqRgX1X3R46y0b_2LnVLcGEH70YwBI7FGDs_M9b6Vte519qwS5mh70b06-4RKSJCRkGE6idJi4QIzHIS3yyQRYhKN_YdNE_-4mkSiMB-Nhf1K-776mxNlLDUL3fK2BcuQ7dG5Wo4zYBGHmSaqqgM-Efrch-VLApLKOxRF_PmGg2pRd63Nbfn_0899H-uZvdn-fTb-i-69ztLi5urr55_LbF7S4vJov0f2NH774_gXdzW9v7u4707cvdW4nxhX6q93b5wkakO9pAkfUdvpOcNzF0NbNrseBWT5JgW4b2p-hyqxPX4z_eT2kkD-pU9-1GY1VjaukOEOmzQ8LZLD_beuMn8c8jVN6BufReBiOhsMxic_W5wmZUMbj0Sgh8agANpwUNIloWAzDPJxMijNx3uf7OJyQhMSDEaHFCHKWpiSPhpNJMAyhpqIauEQdKF2e-f7-eUTSkERnFc2hMv5DLiF9uEiQzM70uc_svC1NMAwrYazZqbDCVnD-1le81ghZvvCJ96zV1fmff5LoUT-ek_8GAAD__z66XIA">