<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/152829>152829</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[CRASH] C23 #embed directive causes crash
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
8ss-boop
</td>
</tr>
</table>
<pre>
Compiler Explorer: https://godbolt.org/z/P1bxdqvPG
The crash triggering program (compile with `clang -O0 -std=c2x`):
```
#embed __FILE__ limit(1) prefix(])
```
Crash output:
```
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: /root/software/llvm-releases/llvm-0804/bin/clang-22 -cc1 -triple x86_64-unknown-linux-gnu -O0 -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name 1.c -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=/root/LLMFUZZ/LLVM-CRASH -fcoverage-compilation-dir=/root/LLMFUZZ/LLVM-CRASH -resource-dir /root/software/llvm-releases/llvm-0804/lib/clang/22 -internal-isystem /root/software/llvm-releases/llvm-0804/lib/clang/22/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c2x -ferror-limit 19 -fmessage-length=180 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/1-7cdc51.o -x c 1.c
1. 1.c:1:2: current parser token 'embed'
#0 0x00007f61012a5d01 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/root/software/llvm-releases/llvm-0804/bin/../lib/libLLVMSupport.so.22.0git+0x1f3d01)
#1 0x00007f61012a2d27 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#2 0x00007f6100b4d520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#3 0x00007f60feccfdc8 clang::Preprocessor::LexEmbedParameters(clang::Token&, bool)::'lambda'(llvm::SmallVectorImpl<clang::Token>&)::operator()(llvm::SmallVectorImpl<clang::Token>&) const (.constprop.0) PPDirectives.cpp:0:0
#4 0x00007f60fecd4c73 clang::Preprocessor::LexEmbedParameters(clang::Token&, bool) (/root/software/llvm-releases/llvm-0804/bin/../lib/../lib/libclangLex.so.22.0git+0xa9c73)
#5 0x00007f60fecd6722 clang::Preprocessor::HandleEmbedDirective(clang::SourceLocation, clang::Token&, clang::FileEntry const*) (/root/software/llvm-releases/llvm-0804/bin/../lib/../lib/libclangLex.so.22.0git+0xab722)
#6 0x00007f60fece7a45 clang::Preprocessor::HandleDirective(clang::Token&) (/root/software/llvm-releases/llvm-0804/bin/../lib/../lib/libclangLex.so.22.0git+0xbca45)
#7 0x00007f60fec77a76 clang::Lexer::LexTokenInternal(clang::Token&, bool) (/root/software/llvm-releases/llvm-0804/bin/../lib/../lib/libclangLex.so.22.0git+0x4ca76)
#8 0x00007f60fed34f6c clang::Preprocessor::Lex(clang::Token&) (/root/software/llvm-releases/llvm-0804/bin/../lib/../lib/libclangLex.so.22.0git+0x109f6c)
#9 0x00007f60fe55ffc9 clang::ParseAST(clang::Sema&, bool, bool) (/root/software/llvm-releases/llvm-0804/bin/../lib/../lib/libclangParse.so.22.0git+0x3ffc9)
#10 0x00007f61035b4236 clang::FrontendAction::Execute() (/root/software/llvm-releases/llvm-0804/bin/../lib/libclangFrontend.so.22.0git+0x124236)
#11 0x00007f610352aa9a clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/root/software/llvm-releases/llvm-0804/bin/../lib/libclangFrontend.so.22.0git+0x9aa9a)
#12 0x00007f61052aa7a2 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/root/software/llvm-releases/llvm-0804/bin/../lib/libclangFrontendTool.so.22.0git+0x57a2)
#13 0x0000000000414d9b cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/root/software/llvm-releases/llvm-0804/bin/clang-22+0x414d9b)
#14 0x000000000040c3c4 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#15 0x00000000004101e1 clang_main(int, char**, llvm::ToolContext const&) (/root/software/llvm-releases/llvm-0804/bin/clang-22+0x4101e1)
#16 0x000000000040bdbe main (/root/software/llvm-releases/llvm-0804/bin/clang-22+0x40bdbe)
#17 0x00007f6100b34d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#18 0x00007f6100b34e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#19 0x000000000040be05 _start (/root/software/llvm-releases/llvm-0804/bin/clang-22+0x40be05)
clang: error: unable to execute command: Segmentation fault (core dumped)
clang: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 22.0.0git (https://github.com/llvm/llvm-project.git 28ed57eda80dc5e3b7dd01d15100c126fa4e50f6)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /root/software/llvm-releases/llvm-0804/bin
clang: error: unable to execute command: Segmentation fault (core dumped)
clang: note: diagnostic msg: Error generating preprocessed source(s).
```
llvm does not provide automatically generated scripts and files to reproduce this bug
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMWV1v47bS_jXMDUGDoiTLvsiFa8ftAineoMnbA_TGoMiRzC5F6pCU13t-_QEpexU76XY3Jy0a7IdEkTPPMzOcISfce9UagFtU_oDKzQ0fwt6624X3pLa2v6mt_Hy7tl2vNDh8d-y1deBQvsL7EHqP8hViW8S2rZW11WFmXYvY9j-IbR-y-ij_fXj4EdEVoqunPWDhuN_j4FTbglOmxb2zreMdRmwhRh34kwp7jOZUaG5aTP6PYuKDRPlGsCOaU8SWUSddxefxD10hlkNXg8S73fbD_d1uh7XqVEBskSG2xL2DRh0RW6ByE9dfLaardcJlh9AP4aX0h_u71eMd9kPdqYA5rocWO-itCzjYazOosB_qmbAdYlutD-f_SO_s7yACYlvl_QAesS3mRmJlhB4k4PDFPDUXH4PjAhBbR-i9swK8B4m9Hdw4HFdy761QPIDEbjDYC6f6MEN09Ri4-Ijl0PUjFzrD6efhZGzu2qEDEyJqjNjWWRtxeduET9zBGbEDDdwnpOmdLmiB2LZWBrFt8g5hDBMhMkyCU70GfFzMd_OCDOajsZ8M0coMR9KaYXQjdCoQW_-OScQmlcOcYCKV57UG0jgATIQG7gj3gdTQWAckWgOMnOYlLAdwqlHg0rDgTpID1wMQwzvwmHRcGdIoPQ7gbCYw6RxoK3hQ1pDOStC4VwKTXgmi4QAas_FFedIrwKRrHO-A9FaZEAN-w7XGpOl42BNwzlhMmqYnwprorIDyjTWYNMYSZwcjlWlJnItJJ6zxwQ0iWEe4VtGmmDSD-aSMJCGS8ijfMEwCdy0EIvohWpLMC0zCYCANtGDARcAS6iFun_hJmRblm1bWmDRpnIy7aGQpVYQ9Ofj-_uft___2W3r69Wey_mX1-BMmjbAHcLyFN6x1MIZknP79kaRVfY4kxLYxlpKpDddE-c8-QPe_y4z77bTDXpU-eBdXWcH1N05NClohENuewv1LmCO2zaLG2ezlP6_MfakNjvFBvNR6mvqKnK-v_n4Vz7ItJg04Zx1JyRRnyxj-4H2MFQ2mDXuUb7IFxaRpzSDipvTKGpRvihmbZZg0_qPqiZWOiD2Ij0QZ0nZNCjltHZGKt8b6oETcD1xK51WLyWa3-3G93v20-vVut_nX6pct2623H3arx5-jOkxsxBy6PlqbVEKKMptZTI5YxI2O6Co75bv4lq8ylK9YzHRicA5MwD13HhwO9iMYjFiVKgdiFaIxG-YU0yOllFbNPKMZ46WkGU6ZPF-hfOU_-_HhwSkTUqp9GpP1Yprk-Ked9cEB7xCbx4StTIiVKNagtyXcFERj8GlVx034OPSxBs28nTE2o22sdz_QY9bkkmZjmYt8sis-TLIKP6rWcP0TN1KDQ2yR4K2xV60yjd0FxFbx_WCVTI_L0wo_E32sKjT9HRWw5wpoXciS0RPREe8roa9VLSLweYJcsJLRCXE-CaQNCNFIscDjlj5Z_lwTrRtH7uF4F734wGPODuB8PFBMK56ir0-eqK3Vp0NELNqV5l0tefT_cw8-dlzrXyHm7A9dr1G-fiEuv0sST5JsD44H6xLx5Vtl4VQrovVm6al3tp9F0-CHh41yIII6wGtOKC5tJgtR5e9us_cJ38tIThrv4XgdxnwpqnyKifKK37xi7Ov8xuBOFL9Y7pLhY6pd96dDQeT5B_SfDW-VhjsT3OfRU6fN8Xfapa5iVTvbZX5pF6h4UX6LXf7AJBPrv5VULXhRTqSqS1JVxav5c1L3cIQpihPmD6f69o-K4ULwaj7RWlzQknnRzMWf7tF_hH8yumzmYmKyvGBSlk0jlhdMYoldPT5d7Tfo-IUz_nqnJCDXbPII93QPZHl2UfDzsi7irnq-5Z01AYxciZQm0tjdEcQQYEz271bVk9Kzuhc-YBHYBDu7hM04X_LnsM939g_GB24EXAA_cblwzxXPdwyyP6O2jNgnZhcHikis4he5_sRhInj4ksIXXzPAO-bqa0ZP1uprVmXF2UTqfKgZf4qskMsaC5Ht4l314riwco5__gWaeE7YczcVmnhIWOPLsctD2tu5ne_zY95K6CbsxSV2KnJR4LMX1tlT2sRfP_C8IJLSwLQkylhHWx7DeV6KP-nUAdzVgSdiKq_sSTPIxiA5W_R0po2qk3lW36bx3WwYEU02nF_ZsJY14Ij03RQmkZPC6vJYnhdy-Z3HcraUSzoJXFwLhILi3S6u2fnAXdg9o_PNKqB4pmJ5bSSgJR6Fv6OZgJ7OGudkgdM1Nz4MhtcacLAYxvDGwnYdNzJ-fIS2AxNSqsENH3QY-5YOUrMtXiJflzq2MptTrjiLxA1XGiSWQ1Lo0wUrShw8YHJIYwBYPUtvX8Tj010bx4STUk5c-H2tyFlcxRYgywokX1ApSsjrSkqayazMKBUZmze8gJI2p7rzlBpUkdIfdfpSo9cBlzj12OLU3np1RHSV8rDW6Tj-5s7jX-40Y0MslXhqTuDOpy93Ud_Yh-NhbF6_0ptdeMSWs5ct5kgESws-asC9swclAfMh2I4HJbjWn8-yo7TUzPWpz9soDT6yS-rkIACHvfK4HtobeZvLZb7kN3CbVWVRZVWWFzf726yiRVbVhWzyolks5oLyuShzKjjUy4VobtQto6ykC7qkJSvzYlYwXhQS5gtOheAgUUGh40rPIvCZde1N6lvfZiVbsOWN5jVon35pwJiBTzh9RYyhcnPjbpPb6qH1qKBa-eAnMUEFnX7bkHqIqNzgNcvxlw6-PF9MsOCDBz82xW8Gp2_f3mk_gT7csv8GAAD__9Tix1s">