<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/116010>116010</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-20 crashed with alias attribute and constructor attribute at -O1 and above. Assertion `Val && "isa<> used on a null pointer"' failed.
</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 ```alias``` attribute and ```constructor``` attribute at ```-O1``` and above.
Compiler explorer: https://godbolt.org/z/5bqxWjPE5
```
$cat mutant.c
int a() __attribute__((alias("foo")));
void foo() {}
int __attribute__((constructor)) main() { return a(); }
```
Also crashed at Clang-19.
```
$clang-19 -O1 mutant.c
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 x86_64-pc-linux-gnu -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=none -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=/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-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O1 -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-b4e528.o -x c mutant.c
1. <eof> parser at end of file
2. Optimizer
3. Running pass "globalopt" on module "mutant.c"
#0 0x00007fd9274c7246 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xea7246)
#1 0x00007fd9274c4e20 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xea4e20)
#2 0x00007fd9274c790b (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xea790b)
#3 0x00007fd9260ff520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007fd92898d6d2 (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x236d6d2)
#5 0x00007fd92898da27 llvm::ConstantFoldConstant(llvm::Constant const*, llvm::DataLayout const&, llvm::TargetLibraryInfo const*) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x236da27)
#6 0x00007fd9280dc480 llvm::Evaluator::EvaluateBlock(llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true, llvm::BasicBlock>, false, false>, llvm::BasicBlock*&, bool&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x1abc480)
#7 0x00007fd9280dd062 llvm::Evaluator::EvaluateFunction(llvm::Function*, llvm::Constant*&, llvm::SmallVectorImpl<llvm::Constant*> const&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x1abd062)
#8 0x00007fd92868c5d0 (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x206c5d0)
#9 0x00007fd9280caae8 llvm::optimizeGlobalCtorsList(llvm::Module&, llvm::function_ref<bool (unsigned int, llvm::Function*)>) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x1aaaae8)
#10 0x00007fd928684442 llvm::GlobalOptPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x2064442)
#11 0x00007fd92a78822d (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x416822d)
#12 0x00007fd92764cb99 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x102cb99)
#13 0x00007fd92ffda091 (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1e28091)
#14 0x00007fd92ffd293b 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+0x1e2093b)
#15 0x00007fd930378132 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x21c6132)
#16 0x00007fd92ede1739 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xc2f739)
#17 0x00007fd930e740b5 clang::FrontendAction::Execute() (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x2cc20b5)
#18 0x00007fd930de42f4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x2c322f4)
#19 0x00007fd930ef0dee clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x2d3edee)
#20 0x0000562ddfad5bc5 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-19/bin/clang+0x11bc5)
#21 0x0000562ddfad2ad5 (/usr/lib/llvm-19/bin/clang+0xead5)
#22 0x0000562ddfad1c9b clang_main(int, char**, llvm::ToolContext const&) (/usr/lib/llvm-19/bin/clang+0xdc9b)
#23 0x0000562ddfadff36 main (/usr/lib/llvm-19/bin/clang+0x1bf36)
#24 0x00007fd9260e6d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#25 0x00007fd9260e6e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#26 0x0000562ddfad0765 _start (/usr/lib/llvm-19/bin/clang+0xc765)
clang: error: unable to execute command: Segmentation fault (core dumped)
clang: 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: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-19/bin
clang: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/mutant-91e178.c
clang: note: diagnostic msg: /tmp/mutant-91e178.sh
clang: note: diagnostic msg:
********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWV9T2zrT_zTmRqOMLTuOfcFFSEjLDH1hgNNzmZGltaNTW_IjyRSei_PZ35HsJHaAtrRcPEyGOPJq__y02l1pqTGikgDnwfwimK_PaGd3Sp8L2lCp5HOjOsPMWaH48zmrqawwCRHT1OyAo-_C7lCQhv2H1oKawy9ErdWi6CwgKvmRiilprO6YVfpVWnskxTfRiERyRAv1CLMgXAfhsv-_Uk0ratAIntpaadBBvEQ7a1sTxMuAbAKyqRQvVG1nSlcB2fw3IJt58Z-nv_-5vZyPOR0kDT9JwqhFTWeptDPWDwppEQ1IFpAcbbcHpbdbP5b1ALhHUioVEBKQfPjEFz2HRyU48i89k2BxESzWR-avMB3j5Xmhhgp5nI802E7LvV5BfIEOLE9t8v-XtVGHFaQWrfyqRvnsTRwGAoRvohNAbq8vl_eXyHRFIyyiqOgqpKFV2iKrTtdB2F1XzJhqArKp68f9F261-geYDchGGNOBCcjGr7aQrO44ILuDXl9UUPbNasogICvUami1YmAMcGRUp_th7yfGKCaoBY50J5FhWrR2sO_eUvYN8a5pnWZ-KJwh_3erVaVpg6iuugakdbqjgGw6o52uothrHOUB2RRuFTYeHIQZixC2WrQ1oKcs3aYJbhmuheyecCU7hKERFqviH4SdaC40ohhhLgwtasClBkCY1UA1psbiAkqlATt7QfIjnZf-CFqUArQfZlRz_EjrDrCkDRiEnXvgUtT9wGHBEG401IpRK5TEjeJQo1YwhFvBcA2PUCPS_xAGtwIQbkpNG8CtEtK6jbWWSgLCZUPtDoPWUiFcli1mSrpFsUG8VhLhUiqsVSe5kBV2tAg3IyfGfpc4RctOfheSY-tMM0G8JghbqiuwmLWdgxGnCcK2k-AHKpCgncYciq6qQLtXQlZBvK54gXDpxzHzIaE3kwund0A2O9WAWy3F3ZcG3jFnClOPoGkF75mkoXc2R_e2d_S_vXcEZOM2j0dR0hoL82wsNL8-1-2MYS_8iItitP5FUi-gYiwgm8FbD67qJEYB2cxmL_-9QvtSGjy5B_ZS6kD6Cp8fz36_CB-pcAlaK41r4WKTW4Gykh1z28cIJYN4nczIzNGZb6LFimvMdsC-YSFx1ZTeO2qlMRe0kspYwZzPUs61ERXC6-3202q1_bz8erld_72825DtanO1Xd5_CeJ1hLByWtmmDcim34K4SGBOsplC-Amxk0AaDSEoiFegyiC-RC3VBrQL0C4CqBK5Ld0Tk4H4prWiEf8F3Q_Hw_BdJ922QC01BgWEVLUqaK1aGxCClESN4l0N7s1BB0J6FiggcYjCpzAMw0XJc7JI2IIkKfLxOl4G8dI8m_7hVgtpfTR96ENydiTS9PtWGauBNgFJXVgW0vqE5ZLUDwOqd7ThlSiur79-mRk1i_JZGJCL8Amo08cluoPC0YnCCZDwNYXvOnkvKknrz1TyGrTZJ9E_18mJnOhETkHMw-JDjM_DYiIoHgtKw7Kck3AQ1PN5Zc_WomCOb-qZJmR-onwy5pnlGU85-XPlSZw6RhNJ81NJlCxGS7dyaYNKu1E13z9P_Gw_iHyCCcjSudrx9Zpaek2fVXcgSKcEDz7dXItCU_18JUs1YvQBjuFMpmQxMTmdmBxylmRjb710uZy6Ym_8Ey5qxb5NTBe1MHYrLGhHvf2-LYQrWFanFBwsFXU_IhWHrWpdlpuSXg3p2cVFskIlrQ1MHlzd6r6t7mAK4QU1gvXqxZevTO4HX6V3KPsFKZSq_eMHYB7RwkE6wXxxgjkPU_JzzDedHBAZwX4cPPG1o38uX7jZfUPr-iu48ueqaesJ9ON58eXITz8GC2fqBItsgkWasTkPP8DTw9QxmkjKp6gzSiEbgaKG7PXJp6eVVdpcCzPd3198qnqBZzkswlZDGcQr5z7OhE76oyzvk814wmTVcu-THwIvdTYdjHa5KDyBN0mSsav1xt609paaIS3pTv6KzUtJ62cjzBcqaeXK8dWLKc6sj3EcEqZO8YllkzRLF1lGCP9zSUmUOkYTSdPkmSasyPMREg66H6DwG6i5z__qUkQhcfZPAJok_bLkNMyjd0vqj_WsbafigGRhHk3EJSfiSB4XqD-e9AGzEfaiP6redLbt3B4evV4fC-hLWQm5B3RE8hkoB30PVLPdTZ-fJhl7RLpSHD6B_AlVn9h_QnRNZfUayShwWy1kdQfldHjvF8sThgMIy0MiHWdYqzsjHuEOypW0t3bqNo_lEA02ooZ7f6oZMqexvH_TSfGfDrbtyUxXarfftbCw3Rfco0kcStrVrgqowcJPJvY74VWTXJbqGtC_WRm96WthHhcTXxtXhHEYL7IoJj_Sp3cfX9A_aCpNf4b_S4oTJ1zeP6yUtPD0u8n1dRNIxNIongbKSYUHHKJFnI9NuHUnu-X9w1TBe2jopBzaf3-UqoyUi3gaRxYTsGGRhMV8rOlGO8gODt1v9idgnYXfPDu9gSJjJCzmE92yiW4cElIm0zjQ3_xe-fKJwUS7_Q7M3jbmQ72AxYSUyUT_fIptGXKASdDsNT2a8TjczU21fmHmR25AwmPgAGO9yb6AmaeE85LyecHmiLFoO1w7j9Kg1vT5zldgbEf18eg0BJHJ2OEM8YvqD7dfLkpEBZu4BolOVCSUz9_FEiifciQnHCOWDxlub_ZQUjqjvA0n1f-DUvUQX95Zwh-14iyfxEISn2hVlnHqb__fh19RxumEbzK9M4CU5--8MyA5z8MJz_kpT0hCtN26aVtjqbbbkeK_LAWSqZT0BJFwkc5Rz_9dmLBFenSA_W5D_r7QPXSSFjUgqxD0uxQx1TRUuqSK7qFqQFq_V5HPrsi3aTT4rgLwHzDuuwXlEIn2XFFJRQ0c8c7LNP6Syh9oDCD86McAkBiFiEHCX0UnbTewHS42kdves2FBLwJyQUKShAtCwjiKSRKQi3SekTnj8ySOGI7-hac2-ndPFM2jJJnPoiw6poq-mHL6v9LaGEh2GihHvq3gCFtlxFP_ykeuuga-FvqnDZUpblK5mmWJjlewqDH-zd4l_uAzaokNbazlw8Ny9Rk9fL5Em5vr65u_r_7vE9pcXV_eo4cbP3zx1yd0d3l7c_dwaB7dvtaGyozb_G-2og4EGpBvyfhO3IHlr9h_crecRxAtsv1t8u8zMLv3LsFHLcS-7XjGz2Oexzk9g_NoEUdJls3z7Gx3nrAiiRYRjUgWEZ4macYB5lFWZhGHhGZn4tw5cRRFcZiHcZTNQhYWCZvPF4s0ZTldBEkIDRX1zPncTOnqzDccz6MoDaPwrKYF1Mb3wQmR8B35twEhwXx9ps-9oxZdZYIkrIWx5sjGClvDG-1x3-46aYaP2mHT1je-iUaNbrQ0BrSPM0EafvUxIQ1IigJChKFBvAriS9Q5x1MSUSS7ukb7dh0hAVkMkWV21un6_PfbsQNAj-fk_wMAAP__42yjQg">