<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/113401>113401</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-20 crashed with preserve_most attribute.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
iamanonymouscs
</td>
</tr>
</table>
<pre>
Clang-20 crashed with `preserve_most` atrribute.
Compiler explorer: https://godbolt.org/z/8MTfxPxfY
```
$cat mutant.c
int __attribute__((preserve_most)) fn1(char *p1, char *p2) {
int a;
#pragma unroll_and_jam
for (;;)
switch (*p2) {
case 'c':
while (--a > 0)
*p1++ = ' ';
p1++;
a--;
}
}
Also crashed on clang-19.
$clang-19 -m16 mutant.c
mutant.c:1:42: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
1 | int __attribute__((preserve_most)) a(char) {
| ^
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-19/bin/clang -cc1 -triple i386-pc-linux-code16 -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name mutant.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 i686 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/home/code/reduce -fcoverage-compilation-dir=/home/code/reduce -resource-dir /usr/lib/llvm-19/lib/clang/19 -internal-isystem /usr/lib/llvm-19/lib/clang/19/include -internal-isystem /usr/local/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/mutant-d7b099.o -x c mutant.c
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'mutant.c'.
4. Running pass 'Check CFA info and insert CFI instructions if needed' on function '@a'
#0 0x00007efe50a0d246 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xea7246)
#1 0x00007efe50a0ae20 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xea4e20)
#2 0x00007efe50a0d90b (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xea790b)
#3 0x00007efe4f646520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007efe50c80e7e (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x111ae7e)
#5 0x00007efe50ded738 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x1287738)
#6 0x00007efe50b5b6f4 llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xff56f4)
#7 0x00007efe50b60fe3 llvm::FPPassManager::runOnModule(llvm::Module&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xffafe3)
#8 0x00007efe50b5be4e llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xff5e4e)
#9 0x00007efe59518c7e clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1e20c7e)
#10 0x00007efe598be132 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x21c6132)
#11 0x00007efe58327739 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xc2f739)
#12 0x00007efe5a3ba0b5 clang::FrontendAction::Execute() (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x2cc20b5)
#13 0x00007efe5a32a2f4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x2c322f4)
#14 0x00007efe5a436dee clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x2d3edee)
#15 0x000055a0ab363bc5 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-19/bin/clang+0x11bc5)
#16 0x000055a0ab360ad5 (/usr/lib/llvm-19/bin/clang+0xead5)
#17 0x000055a0ab35fc9b clang_main(int, char**, llvm::ToolContext const&) (/usr/lib/llvm-19/bin/clang+0xdc9b)
#18 0x000055a0ab36df36 main (/usr/lib/llvm-19/bin/clang+0x1bf36)
#19 0x00007efe4f62dd90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#20 0x00007efe4f62de40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#21 0x000055a0ab35e765 _start (/usr/lib/llvm-19/bin/clang+0xc765)
clang-19: error: unable to execute command: Segmentation fault (core dumped)
clang-19: error: clang frontend command failed due to signal (use -v to see invocation)
Ubuntu clang version 19.0.0 (++20240722031324+65825cd5431c-1~exp1~20240722151445.1819)
Target: i386-pc-linux-code16
Thread model: posix
InstalledDir: /usr/lib/llvm-19/bin
clang-19: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-19: note: diagnostic msg: /tmp/mutant-11b6ec.c
clang-19: note: diagnostic msg: /tmp/mutant-11b6ec.sh
clang-19: note: diagnostic msg:
********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8WU1z2ziT_jXwpQsqEqRI6eCDLFlJqpKNK_bM1J5UINCkMCEBLgDazh7mt2-BpD6oOJ_jfVMpi2w0G08DT3eDTe6cqjTiNZnfkPnmind-b-y14g3XRn9pTOeEuyqM_HK9rrmuKItAWO72KOFJ-T2QLGotOrSPuGuM8ySLgHtrVdF5nJFoQ6LV8HdtmlbVaAGf29pYtCRZwd771pFkRdiWsG1lZGFqPzO2Imz7v4RtFx8eyue75_K_zy2RLBr_D7csFdxD03mu_UwMQqU97Hbc-wHJbkfYgrDFFCtbEraEUseELcSeWyBs1caEreF4x4IGyW8GqwDBLifJ4Z6wpLW8ajh02pq63nEtd3_z5qBemmBmER5IbsJ8oxzAPSkv9v3gC9MACO4QCMsFYXlYoOMAwNNe1WFsQSkHktxCNLEc_o2O3BB2AyTZBEPQG7o51zuonMSc0okOyTfjIh8v-r-r2pkjEYwG0ZMjXk52PGzMKAfaxNnFFh3vklVMklXKAiGeuNVKV-HSNMp7pSvwe4SWW96gRwuaNwhKA4ey08Iro0FiqbTqL5UDDmuWAD571C6IyPyG_iVYQo8iR-abk48xkHwNv0AYPtLlqz2D3hKZ3w6iu_e3q_tbcF3RKA8ciq4Ci62xHry5pL7y-66YCdMQtq3rx8MPba35G4UnbKuc69ARtgWuJSgt6k5ivzj9RkDBxWdvucBA4NZia41A51CCM50dxOFJ7pwRinuUYDsNTljV-nHj7j0Xn0F2TXvkXDSDO2sqyxvgtuoa1D7ABsK2nbMBpioOYOMlYdtCacK2_c4DFSIG6q1qawSVLDLaClor3T1TYSTGGVBslKem-BtomFYqC5wClcrxokZaWkSgokZuKXeeFlgaizT4ilqe9PrpH9GqUqHtxYJbSR953SENlHFAG640LVU9CI5sBNpYrI3ggUC0MRJraJUA2ipBa3zEGthwoxxtFQJtykBG2hqlfchjG17XQMuG-z1Fa7UBWpYtFUaH_fAk2RgNtNSGWtNpqXRFgy7QRhjtvO2EN5byWnEXcJadflJaUh88cyTZMKCe2wo9FW0HKltkQH2nsb-tUKMNcCUWXVWhDUN9CG0qWQAtezkVffodfJQqgCZsuzcNhr0yMvxYlJ1AoKUwj2h5hb_ykMWBZUHv29wY7ntuELYNeaFfQs1rqtwX57H5-WdDSIxB8D0rRvD6RdWQDqwW54_8lNJg96haorXG0lqFIA8elZXuROBiSDUk2aQzNouBlu6zaqmRloo9is9UaVo1Zb_atbFUKl5p47wSgQFcSutUBXSz271Zr3dvV3_e7jZ_rT5t2W69fbdb3X8gySYGagIi37SEbQc-U5kX0XI5M0CfQVyk3Hg2pqlkjaYMpaPl1qEF7iGEkykhxMegzEbltZE4sKwnwjCYjIOfOh3IBi13LlSY7SEn3wXBB655hTZUH6OhMbLrC1d-RMXyMfGk37C3DmsF6-0KlC7NmPkcWg_r7btw2UdPyOmgStCIEuU43bE8hMKXRjz8HKt2BNFzFEVRjiXOIx5JlmbQ591kRZKV--KGizurtO-z4sOQWhcnJcufdsZ5i7whLAvpVWnfF4VQOr6bHWez05Aq3r__88PMmVm8nEWE3UTPyHOWZqeqTlgSXwDmyKKXAH_q9L2qNK_fci1rtK4H8yqYUmTRBBO7XMRlVLyK88uomEyUnE2UllmazVk0TjTYeV5kuywdK0ulu2FABLtZbzRl8wvw6QS8WESY478HH8cxxxwnM80nM0mUebI427oPXOyVxkPkhMAZ-dXpj_ognjDvJMxeZW9jtsjzZDFBnU1QF_MiK9Mz1Nu7APQQ4P9hvGU5z8p0Ajefws2iEpOfgPuhz0kTsAfRa0HlJSYTqIvLlcUUz6DWWHHxZUw_J9DvmrY-Av9_BTzHdErg5Tng5TxeiByHI_8A4LZR_mY4kX3sfNv5cEA-DW9Ope1WV0rjmC3PVN4il2jvkVux_9gO-bw_G32tGsrRG9Q_0Hroz0s_UHrPdfWSymlp771VuvqE5VR8WPHVhcFxEVYj2c8feae97Zx6xE9YrrW_85Yk69PwYzkG_VbVeN-fNUhyG0w4L4eRTqv_6XDXXjwZqlD7ZJXH3aEWnT0kseRd7XcSa_T4gweT23HOr11aG-26JpTy1e-wbHgPFG07TTvIInGWLEOZmxTm5aLAOGHfwzPQp691D5ZrN5xW_9DqgoSr-4e10R6f_W8GyssusFhkccImLkxK9SJheZ4sz124C2eu1f3DFOA9NnzkX2FMffp9LaiClXmynCCdFHCeFDwq5udItzYs2ZHQQ7A_o-g8_uax4hurKASLivkEWzLFxjgr02keGPpJ77TzXAucoDtE4OLbzrwqC0TC2FlBCvgn5wueJpnEadIckJ7ceBxfQaeov3LzNQOQyQQlTgPwcFqZz3nEiyRLCjEHIeJdeH2e1J2VtfxLyI3Juu-XjSl0dUgiExlbw6NR8qfhj-95_ZGqEFNqZBcQIy7nv2QSuZxazKcW56VYFsNmHdzuj_aDU70Pq2l6fzCmHvPLWSn5NUelWBYTVIsLP2WZZBDw_Nr6FWWSTewup8dpJuXyF4_TbCmX0blNFl3axDSC3S48tnOeW787A_7Ts2A6nSW-2CfMszkM9n9pTUSenQhwaFKSZAX9y3y46DQvagRvAIdABWGahutQV-Eeqwa178MV-gIbZhfGYt87C6-g37M99MbKMR8dDEPJVY0SZNdP6_q3uGC3cwj0sZchgjpLFOMkfxSd9t1odmw8QAjy2bitN4TdsIilUc5YlMQJSwm7yeYLNhdyniaxoPE_-NzG_xyU4nmcpvNZvIhPBWM4UgX8LzXyRp29RS6hb6IFzdY49TwM9QmsrlFulP1h__CrtdMmnF5WcGqTQOP6NvGBHP_i_1nPeuzZrh4eVuu38PD2FrYf37__-Ne7_3oD23fvb-_h4WMvvvnjDXy6vfv46eHYKb17qee6cH3L-Ft916OCReh7kCiB-6PJn1yCixZQHBcZikPT51_ZcPvf2IvX2pHDd54reZ3IZbLkV3gd52yZpRmL4qv9db4s5jxmWZQuE1mILJunqSjTNM-zIi4Wyyt1HRgdRyyJ4jhL41m6jJbRArGQiGkepSSNsOGqngX-zYytrvo2-3UcJ2kUX9W8wNr1X8cY0_gE_ShhjMw3V_a6J23RVY6kUa2cdyczXvkar8WLH80mHxXg-M1hdtXZ-vr3vwuMmB-v2f8FAAD__2q2VuQ">