<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/70910>70910</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Clang] (C23)emitGlobalConstantStruct Assertion `SizeSoFar == Layout->getSizeInBytes() && "Layout of constant struct may be incorrect!"' Assertion failure
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
khei4
</td>
</tr>
</table>
<pre>
Clang crashes on assertion for the following program with
Test cases should be reduced, but it takes a few days for me.
https://godbolt.org/z/3ddzP8P3b (original program preprocessed)
https://godbolt.org/z/1Y6oz95c5 (/tmp/csmith_tmp_prep-510e9f.c , suggested by crash message)
I was trying to make arrays to 128 bytes aligned for csmith-generated program.
<details><summary>local env and log</summary><div>
```sh
~/git/llvm-project/build/bin/clang ./csmith_tmp_prep.c -I/home/khei4/git/VecFuzz/csmith/include -std=c23 -O3 -Wno-every
thing --target=x86_64-pc-linux-gnu -mavx512f -S -o csmith_tmp.s
clang: /home/khei4/git/llvm-project/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:3341: void emitGlobalConstantStruct(const llvm::DataLayout&, const llvm::ConstantStruct*, llvm::AsmPrinter&, const llvm::Constant*, uint64_t, llvm::AsmPrinter::AliasMapTy*): Assertion `SizeSoFar == Layout->getSizeInBytes() && "Layout of constant struct may be incorrect!"' failed.
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: /home/khei4/git/llvm-project/build/bin/clang ./csmith_tmp_prep.c -I/home/khei4/git/VecFuzz/csmith/include -std=c23 -O3 -Wno-everything --target=x86_64-pc-linux-gnu -mavx512f -S -o csmith_tmp.s
1. <eof> parser at end of file
2. Code generation
#0 0x00005604b5f1567f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/khei4/git/llvm-project/build/bin/clang+0x851467f)
#1 0x00005604b5f131fc llvm::sys::CleanupOnSignal(unsigned long) (/home/khei4/git/llvm-project/build/bin/clang+0x85121fc)
#2 0x00005604b5e4d7d8 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x00001508c0411420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#4 0x00001508bfeae00b raise /build/glibc-BHL3KM/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#5 0x00001508bfe8d859 abort /build/glibc-BHL3KM/glibc-2.31/stdlib/abort.c:81:7
#6 0x00001508bfe8d729 get_sysdep_segment_value /build/glibc-BHL3KM/glibc-2.31/intl/loadmsgcat.c:509:8
#7 0x00001508bfe8d729 _nl_load_domain /build/glibc-BHL3KM/glibc-2.31/intl/loadmsgcat.c:970:34
#8 0x00001508bfe9efd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#9 0x00005604b7098c52 emitGlobalConstantImpl(llvm::DataLayout const&, llvm::Constant const*, llvm::AsmPrinter&, llvm::Constant const*, unsigned long, llvm::DenseMap<unsigned long, llvm::SmallVector<llvm::GlobalAlias const*, 1u>, llvm::DenseMapInfo<unsigned long, void>, llvm::detail::DenseMapPair<unsigned long, llvm::SmallVector<llvm::GlobalAlias const*, 1u>>>*) AsmPrinter.cpp:0:0
#10 0x00005604b7099996 llvm::AsmPrinter::emitGlobalConstant(llvm::DataLayout const&, llvm::Constant const*, llvm::DenseMap<unsigned long, llvm::SmallVector<llvm::GlobalAlias const*, 1u>, llvm::DenseMapInfo<unsigned long, void>, llvm::detail::DenseMapPair<unsigned long, llvm::SmallVector<llvm::GlobalAlias const*, 1u>>>*) (.constprop.0) AsmPrinter.cpp:0:0
#11 0x00005604b709a837 llvm::AsmPrinter::emitGlobalVariable(llvm::GlobalVariable const*) (/home/khei4/git/llvm-project/build/bin/clang+0x9699837)
#12 0x00005604b709690b llvm::AsmPrinter::doFinalization(llvm::Module&) (/home/khei4/git/llvm-project/build/bin/clang+0x969590b)
#13 0x00005604b5822ff5 llvm::FPPassManager::doFinalization(llvm::Module&) (/home/khei4/git/llvm-project/build/bin/clang+0x7e21ff5)
#14 0x00005604b582ffb6 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/khei4/git/llvm-project/build/bin/clang+0x7e2efb6)
#15 0x00005604b65ad25a (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) BackendUtil.cpp:0:0
#16 0x00005604b65ad739 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>>) (/home/khei4/git/llvm-project/build/bin/clang+0x8bac739)
#17 0x00005604b6dc14f7 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) CodeGenAction.cpp:0:0
#18 0x00005604b87efa09 clang::ParseAST(clang::Sema&, bool, bool) (/home/khei4/git/llvm-project/build/bin/clang+0xadeea09)
#19 0x00005604b6dc06d8 clang::CodeGenAction::ExecuteAction() (/home/khei4/git/llvm-project/build/bin/clang+0x93bf6d8)
#20 0x00005604b6c91699 clang::FrontendAction::Execute() (/home/khei4/git/llvm-project/build/bin/clang+0x9290699)
#21 0x00005604b6c0e77e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/khei4/git/llvm-project/build/bin/clang+0x920d77e)
#22 0x00005604b6d857a6 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/khei4/git/llvm-project/build/bin/clang+0x93847a6)
#23 0x00005604b321f886 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/khei4/git/llvm-project/build/bin/clang+0x581e886)
#24 0x00005604b32167ea ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#25 0x00005604b6a5f50d void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#26 0x00005604b5e4dce0 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/khei4/git/llvm-project/build/bin/clang+0x844cce0)
#27 0x00005604b6a5fb2f clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#28 0x00005604b6a22afc clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/home/khei4/git/llvm-project/build/bin/clang+0x9021afc)
#29 0x00005604b6a2358d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/home/khei4/git/llvm-project/build/bin/clang+0x902258d)
#30 0x00005604b6a2bb25 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/home/khei4/git/llvm-project/build/bin/clang+0x902ab25)
#31 0x00005604b321c4fa clang_main(int, char**, llvm::ToolContext const&) (/home/khei4/git/llvm-project/build/bin/clang+0x581b4fa)
#32 0x00005604b322cea5 main (/home/khei4/git/llvm-project/build/bin/clang+0x582bea5)
#33 0x00001508bfe8f083 __libc_start_main /build/glibc-BHL3KM/glibc-2.31/csu/../csu/libc-start.c:342:3
#34 0x00005604b32162ae _start (/home/khei4/git/llvm-project/build/bin/clang+0x58152ae)
clang: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 18.0.0 (https://github.com/khei4/llvm-project.git 859d5c2a66a1b59001079d79e4e3bc68752d5958)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /home/khei4/git/llvm-project/build/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/csmith_tmp_prep-510e9f.c
clang: note: diagnostic msg: /tmp/csmith_tmp_prep-510e9f.sh
clang: note: diagnostic msg:
********************
```
on Ubuntu 20.04.6LTS Intel(R) Xeon(R) Gold 6326 CPU @ 2.90GHz
```
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
```
</div></details>
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWsty2ziXfhp6g5KKBO8LLxTZStzjtF2Wk39mpQKBQwkTEuAAoGN5Mc8-BZCSSFlO3B1192L-lCOJxOV8535wIVrztQC49OIPXnx1QVqzkery2wZ4dFFItr2cV0SsEVVEb0AjKRDRGpThUqBSKmQ2gEpZVfI7F2vUKLlWpEbfudkgz7_y_Fn3-QjaIEo0aKQ3sq0YKgApYC0F5uE5KlqDuEGGfAONCCrhO2Jkqx2JGqbDqbrPjTGN9sKZhxceXqwlK2RlplKtPbx48fAiZOzlPrsPC-ThTCq-5oJUe3yNgkZJClpb8jl635zBfyXyJY9pbOf08MLUjYcXVNfcbFamblZ22kkc-JCXU4osX7pdr0EbYKjYdkJENWhN1uDhfMjPDfpONDJqa8VoJKrJN0BEKSsEI1GAM1RsjRVOZRXGnGQ60pM1CFDEEun5OyGv_jOcMzCEV9oLr71wrtu6JmrrhdeVpKRCIJ4QEQxVcu2Fcw8vDh3sUP5kf7yeNfG7P73pXvyvFR83Hl5U1VM9aZT8b6D2sWh5xew3F1ZyzrSmr2U4pWhy4-HFRtbg4YWzxv2UX4Eu2peX_SgPL7igVcsATbRhXnhFcYgmdyGa_EvICTyB2nawzMYKdzIxRK3BeOHVc5askmjS0EnFRfs8WYsWTWry9BwHuESTJZpIdIA21d00DrYXztBbCI-Yto_2ixceXswlg49guZ_p-l5xYUCNHqa0abxwFoZRYGk8Sc4Q1Nx8rGRBqrkU2hBhlka1dvKM2hfIkQhnXji7Iobckq1sjYcTa4HHHY5nmNlOh-Yhqh-O70e2XJgkWpk3Z-meK070Z9I8bt2w3HI228cRL_GX_AWWckEU8sIrL7xCHQ8TL7xeg7GtN-KDtX_neTly4BLkYdx1RLLskBJhkHasoZpsbZThgkqlnCoCD2MPp6gkvALWe8n97fVseY10W9TcIIKKdo0UNFIZ63hHMYGbTVtMqawHeh1rm2vdWpgL50g7y7RhsnP_gtBvRhEKVmLDOIS0bFX32o4kWkvKnVerViBNFW9MD3lpCP2GWFtbS-le-VN03wc3otZtDcLoP2Cj_5Rjnsklgyly_7xwDrL0wmvUEKVBIWIQCGato-QVdJ1x39m6IupjJ5eia0QeDn3kP_u-78eJHxVxGcRJWg6MW29198OZuNPFY6fQ7NBJke8rqY0CUveOxK3P5H3q-JM68fAH_zmLgyhJy30CsZCDI8hhUNJTkOcVENE2d2LJ14JUHs5aobuEUkk7_5kA4qCkI4B4BBAilrIMza1HPACV1hQ6RJ-IYJUNPlkvr1GfuRQGnk0fI333f08i7EkEsZ9RPwqCCPtotVKgjVSwUqZnrQvEvaHtraxraMxGAWFTLae-4yWIIuyPOIkGZIoSCPh-gRThGtBAJuuKF3Ty4dNt-B-f9494GgY2qfayX0yti-mtZtDYiNEK_ty9eHJoRGsf3dRT6oWz2GaE4IAkHiPJWBbniBTScfo-JIZ10nCjHJHMEkkPRJJjIinO0RrMqsO90rC2wWb1RKr23RLgwlj-K0lYrdeUdKRj3yaG7EA7PUV7JaqVHbhisiZc_BrJPLVGFEYHmtmYZg4lS95hONSaTOJMJgxLloxMJh8af-rnGY3xiaR-UzfVKIgcknmX3PpI8joZ75p_lsx_MvIoFgz7X4HQ8Jk0Xjj_Qa9lTarqK1AjlRfOD-87Pl0VMCIYtLagPEnoRpTyFDFbEL0a1BW14wnuCVd_Bdruz5Ux6FXZNghJNir7R4rP8zz5QZn02iTOag7_1uEpHXo4m7oejZKNjfo_V2twpFaShem71PqVKE6KalwqjJsGaM-Ri_Mkz7MwPaw2cRjgI_hJ7hc_gM_kwi6e-UtXJg2hf5astdwkZwMb534xAhuOCocM47KMB2AX9_dE689EkPXfjzcFHJRlPMIbHeEty2Lo8hWsCd329eMBuQv9XeHY_tWQoSySEeR4CDmJCcMxsaSIkGJby1YjQWrQjatx8w7Wdc2NXcHVRbX9BFWzE_7wvV2e9mtlL5x9IPQbCDajnVbmyK0JbEsr-P-0sGrM2IVtCd18V9zAaldIDwYxKElbmRWDCgz8ZGDv7znqQXwxvDrt2smxLNIwRwMuLH_9JHetaVozZvKKk7WQ2nCqr8WaC9itog9dPgFhoJZAFN3cNVYYehTOB137zYKf9Hp0a6efdLolYn2qyyCSGsXF-gHK8eud_c2OJnylzsOQG2FUq_kTPEA5F-b-SK9PZb8YWfAKllttoO6TwT9hEWdY7hSEpmE-cql0ZEaMBlGZnpCeTdhtvfOdbu3zqIjQlYtdXwQ_sq_Z8rFfA_URoTeRTg2nTTobYslSKIk_Mul7u1SeLR_HlJZQk95GCimrw_c5REYYAPHHIsuPROYnLDvhDL3Bdc74DLQ1sLPB7ExZKCzKhGVDcHhUyCU0D5J8JMOFslrZu8MQ3flw4dxP8pHQcDDG5UOawlhodcMrUDeuMKRwWm5vM3K2zI59lqYwwo7HCs_ilCSjUNuhPLDwJCl5jfgVi2crncIsSskoVeJRNRLioMyyBFEarOxSdJS3Z0qRrY2m4ZxuiDqUdV2oG7_b1cTngh5nAWTZGHp0BD1JgaCdjOfBo3Pu7GRl3VUnJ_g4SiF2jj48DZJMjpjiT2_U0nhcfJC4jH3W7Xof5i1b4cxxpZw8XWvnVi6O2y6UVFVB6LdVKSzSg3l0tHtTmQdzWddEsGMPPam3fWaRLnGSapRTDvmyzyWDVLRa0efnIOgeCqI5tXmHW0xOiqPO9sXKKMKN3jUfTUeqypq-W-Ls2vv1yy4qO8PpZO6GeDitSF0w4uH0ICqc7Xb5fpPFaX0kxxt1FPzhEvPEdlzX8tCKJSnBlX3vVd158m8UUQr-yNjTY6sqcIn-P1uFW-Y2RJluhfum-rOx4DAmJX1TcC7yklcZbyfNUZg-Gmg7vFWr_qDrbFSSDHj71Vjv44AMtqytKPIjUYRxxv6oKH6ThX5bDr_J4pbrt3ZzXgfgveqbbl_EbZG_X3S9ffxVAsRxxoYCHJ-jJAQXBY7fAns1-D1K_Ccy_luC_xsFeJb6wsekwKPdg_E5TogDGpWkg7erMHaQXbyYvdrjeysFn6WmKKKSjODiMVxMgcSo35X_dXq4ADIWT3h0IFD6WYhWq4oXNpQSZVZ_5EiA6nZ3CNP9dI1uHnc4EEbYfh7IvyqhMAHUET6PgGNMDjXy_p4BKGWD_KwzBFT2JTqivX12x9ndpRt45lbxDFAQRhZUqwFNnpCRSAMgPiiih2TQEyjNpUBBNvWnvh34g5PvHXtDxqZrblAW5yymmCQJCYo49_3AT3OW5hBBWNAkS2PM4jw-rK0e-3PfGTpx8Nt3cSdyqJYMKtuxkZo_95dmbMlfVcCuuPqTh91jSQtp7BIJsf02Dqp1d9ejN4Jf-BvcmOnvHMweH2fzT-jx0zVa3N3e3v3r5vePaHFze71Ej3fu9YcvH9HD9f3dw6O3O-m_P3VnINPWyd-8N7DvoAC5ogEYImY_5Xv4_9l1p7PNtLtE9H6lnEs1u2tMr284SYG-FK0wLcL-1I-mye3jEt0IA3bJ9GAl-5_gspT7_VFWDCW2lJ7ff0Fe5CM8zf2Pn15O08ERosQd2YKhHl5IPVFQAdH9fYXfZ5-vvfDKw7jD4GHcNXy9flje3P3etfXAkEXm4Wzh7nMtpNYuYu-GnObRXfXqb3d1v_eXxC7YZcjyMCcXcBkkeZbhJAizi81lyiJgDId5iIMgKRKWREWZFyQhfpyXmF7wS-zjMAj8wM_8LM6mcURJSXOAIAiCLCde5ENNeDW17jmVan3h7s5cpn4e-BcVKaDS7l4ixn2QxF58daEunTsX7Vp7kV9xbfRhBsNN5S4zumuLXnxlZTHHoYfzty5R_ZMXkQa0bRBvFaCLVlWXf_7WkRPe_wUAAP__b2G6yw">