<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/55589>55589</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            clang -O1 (higher than 0) crashes if LLVM is built with -flto
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          somespa
      </td>
    </tr>
</table>

<pre>
    If LLVM is built with -flto in compiling flags, clang -O1(-O2,-O3) crashes on any .c file, even this one:

cat loop.c
#include <stdio.h>
int main(void){for ( int i=0; i<1; i++);}

clang -v -O1 -emit-llvm -c -o foo.bc loop.c
clang version 14.0.3
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/14/bin
Selected GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0
Candidate multilib: .;@m64
Selected multilib: .;@m64
 (in-process)
 "/usr/lib/llvm/14/bin/clang-14" -cc1 -triple x86_64-pc-linux-gnu -emit-llvm-bc -emit-llvm-uselists -disable-free -clear-ast-before-backend -main-file-name loop.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 -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -v -fcoverage-compilation-dir=/home/j -resource-dir /usr/lib/llvm/14/bin/../../../../lib/clang/14.0.3 -internal-isystem /usr/lib/llvm/14/bin/../../../../lib/clang/14.0.3/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O1 -fdebug-compilation-dir=/home/j -ferror-limit 19 -fgnuc-version=4.2.1 -fcolor-diagnostics -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o foo.bc -x c loop.c
clang -cc1 version 14.0.3 based upon LLVM 14.0.3 default target x86_64-pc-linux-gnu
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/../../../../x86_64-pc-linux-gnu/include"
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/llvm/14/bin/../../../../lib/clang/14.0.3/include
 /usr/include
End of search list.
clang: /var/tmp/portage/sys-devel/llvm-14.0.3/work/llvm/lib/IR/User.cpp:45: void llvm::User::allocHungoffUses(unsigned int, bool): Assertion `HasHungOffUses && "alloc must have hung off uses"' 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: clang -v -O1 -emit-llvm -c -o foo.bc loop.c
1.      <eof> parser at end of file
2.      Optimizer
 #0 0x00007fb9f41bfc72 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0xe3cc72)
 #1 0x00007fb9f4177f34 llvm::sys::RunSignalHandlers() (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0xdf4f34)
 #2 0x00007fb9f4112d58 (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0xd8fd58)
 #3 0x00007fb9f2f957a0 (/lib64/libc.so.6+0x3d7a0)
 #4 0x00007fb9f2fe12cc (/lib64/libc.so.6+0x892cc)
 #5 0x00007fb9f2f95702 gsignal (/lib64/libc.so.6+0x3d702)
 #6 0x00007fb9f2f80469 abort (/lib64/libc.so.6+0x28469)
 #7 0x00007fb9f2f80395 (/lib64/libc.so.6+0x28395)
 #8 0x00007fb9f2f8e962 (/lib64/libc.so.6+0x36962)
 #9 0x00007fb9f4358bd9 llvm::User::allocHungoffUses(unsigned int, bool) (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0xfd5bd9)
#10 0x00007fb9f424867f (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0xec567f)
#11 0x00007fb9f707e3a9 (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0x3cfb3a9)
#12 0x00007fb9f4d66945 llvm::PromoteMemToReg(llvm::ArrayRef<llvm::AllocaInst*>, llvm::DominatorTree&, llvm::AssumptionCache*) (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0x19e3945)
#13 0x00007fb9f510a394 llvm::SROAPass::promoteAllocas(llvm::Function&) (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0x1d87394)
#14 0x00007fb9f51320f8 llvm::SROAPass::runImpl(llvm::Function&, llvm::DominatorTree&, llvm::AssumptionCache&) (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0x1daf0f8)
#15 0x00007fb9f6ca30f6 (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0x39200f6)
#16 0x00007fb9f43605b9 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0xfdd5b9)
#17 0x00007fb9f5e1ac52 (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0x2a97c52)
#18 0x00007fb9f43639d1 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0xfe09d1)
#19 0x00007fb9f5e1a692 (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0x2a97692)
#20 0x00007fb9f4347bc9 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0xfc4bc9)
#21 0x00007fb9fcd38b85 (/usr/lib/llvm/14/bin/../lib64/libclang-cpp.so.14+0x269cb85)
#22 0x00007fb9fbd8a3de clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/usr/lib/llvm/14/bin/../lib64/libclang-cpp.so.14+0x16ee3de)
#23 0x00007fb9fc0c35d5 (/usr/lib/llvm/14/bin/../lib64/libclang-cpp.so.14+0x1a275d5)
#24 0x00007fb9faf9d12d clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm/14/bin/../lib64/libclang-cpp.so.14+0x90112d)
#25 0x00007fb9fc760161 clang::FrontendAction::Execute() (/usr/lib/llvm/14/bin/../lib64/libclang-cpp.so.14+0x20c4161)
#26 0x00007fb9fc6f4b7d clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm/14/bin/../lib64/libclang-cpp.so.14+0x2058b7d)
#27 0x00007fb9fc7a9620 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm/14/bin/../lib64/libclang-cpp.so.14+0x210d620)
#28 0x0000562969e507aa cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm/14/bin/clang-14+0x157aa)
#29 0x0000562969e55ee8 (/usr/lib/llvm/14/bin/clang-14+0x1aee8)
#30 0x00007fb9fc4351f5 (/usr/lib/llvm/14/bin/../lib64/libclang-cpp.so.14+0x1d991f5)
#31 0x00007fb9f40fa832 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/usr/lib/llvm/14/bin/../lib64/libLLVM-14.so+0xd77832)
#32 0x00007fb9fc4563ae clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const (/usr/lib/llvm/14/bin/../lib64/libclang-cpp.so.14+0x1dba3ae)
#33 0x00007fb9fc4209c9 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/usr/lib/llvm/14/bin/../lib64/libclang-cpp.so.14+0x1d849c9)
#34 0x00007fb9fc420de1 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/usr/lib/llvm/14/bin/../lib64/libclang-cpp.so.14+0x1d84de1)
#35 0x00007fb9fc427eb1 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/usr/lib/llvm/14/bin/../lib64/libclang-cpp.so.14+0x1d8beb1)
#36 0x0000562969e4c34a main (/usr/lib/llvm/14/bin/clang-14+0x1134a)
#37 0x00007fb9f2f811ea (/lib64/libc.so.6+0x291ea)
#38 0x00007fb9f2f8129c __libc_start_main (/lib64/libc.so.6+0x2929c)
#39 0x0000562969e4d2b1 _start (/usr/lib/llvm/14/bin/clang-14+0x122b1)
clang-14: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 14.0.3
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/14/bin
clang-14: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-14: note: diagnostic msg: /tmp/loop-b54cc5.c
clang-14: note: diagnostic msg: /tmp/loop-b54cc5.sh
clang-14: note: diagnostic msg: 

********************
/tmp/loop-b54cc5.c =  https://dpaste.com/4SA8J8L2A

/tmp/loop-b54cc5.sh =  https://dpaste.com/FMBQLYRXJ

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNGttS4zj2a8KLyinfLw88hIQ0TNELC0zP7lNKluVEM76tJUPYr99z5IRY6QRoOr01XZTbkY7O_SbJaZ29nF_n5Obm21ciJEk7USjyLNSKWHmhaiIqwuqyEYWoliQv6FKO3ClhBYWf1q0zcmPr1oUh69YbuQlhLZUrLkldEVq9kDEjuSg4LuFPvCJqJXCOj7zJyJ6N7M2TUUWKum7GbDPqeqJiRZdxMvKmUmWiHq9G3mU_KypFSioqoP1UiwzIjqKLvG4JDBCcFCNvZo-8C3yZOv2Le6H_Evg1imYG8V6WJxSHWLwUyiqKp5JYjFg1yet6nDKDu37BE2-lADEdf2yPvX7mkbZLrkA4so7DRehbDbNAcd3aWlbdBmTVcpqRss54gYBNLcW6n7qupKJFwbOZaHFq5M472cKzECk-gSn4z_HhkYL0es0DLzhTPCNfplOQXSOgCvg6gGDJGDwPcQZYnbE3tnucU1plIqOKk7IrlMDFgGyMmvPtMvT3KL8FhCYRldW0NeNSovq3w-470rlzrWYLB1ywBQPbqFY0BT-k24HdLLDW4FcneSGkksTKhKRpwa285RwQFpy2FpXKSjn4DrdSyv7iVUYsdC0LvdaqaMk3lofhlhc107q1tPVII2AYHlYBvl0Qt_8hJPwHBMq8heVWU4NHcrDnrAK_h6AqqVpZvG2rGn7kjcXqSrWUgdfMwJusvKqttu7AAiA8wgImAJGq7ZiqgeNCUAkBZuVd9SyqzFIolITVQF9p_7NY06GSrNCHoa7iemDJK94ix2Xv3Qr8UFmS0aLXiljzDPlCGtJ6pm2FEW9lPO2WS94iIhgAOsss1dGSsxpigC4BvU4QvWoy9N0ZmG9VlxD38z-J1XJZdy3jOPeeU7vz8fj7Rw-rHUIDY8QRSyu2ogWo_EUqXp4ON7xs889bVMAdig-CfjQAD_N4eMn3dPkaX9iQ_oeAeiZfQTEP5trw75k27x2mEBBvxElgAFhj1iY3ArQ_dseO9pUC4DJBl1UtlWDgwLPFApLW4mry7XIx-2NyP3cX0_n1YvLwFdY5g9xrrcmhBKxzgpmFSQqxkZGugRFd0TbDGc8pZCnSx8fx5CyAuxbdHmN1DWmDQzUBsTmG3ouZtUzj49QPo_iFTvFj_OwvGtZf1x0jOZdISJhsRaDEtJBOV7wdVHGjXiO8d_kW_K-I1H3MxvAlJPY637KEBWE8cKVNrXyiuE6VDTybulWQ2uANogSSICT4DZ_WK-Hnuv1rx3zP3fU9PH6XvB2zpgG8foDIsU0hGg404E1wvn-Dal2zq65a1nkOo1Ah466SYDPwYghY7JvSui503zIhEwkLMRTJKLSvqMSFt_1C4D-EPzSXxglVWSqyok-crAAKhM9JpwmAvSOSU6hv2UYHdzeXkwewV5diFFPoAZek5agBAg3gSqlGIrfuHL0VOsMuHUNaGEiOWoES_yf4FCpeyg4JzaEDRCl6v1Ar3jeHBAstVjzdFTZAqG8OQOK-TOAwrqRS1kxQbDHariKSQfXfmu1BARKSdWXz6lM2TCV3bb2EsksgzrsSPB0ZJz_c4DmIChyZ1zk6ckNb0DuBHpX3bqRbWg3pIuRtoyD__RdsunVBzyb22oZ_UZ4mue-kOYvcgQOAT_UvdxCaSgvz2Gsk3gG19HkBuRLKdKmNO-09IsGe6mPxA5Oh3_-P2RA9V9bQBttr7jHgaNiPeY7JchTlnn-I5fuuegAHpcUVGKmA9KvZOQlXWe4DUYMr1-TKcbMgPgmpOAdMBilvSMrNkyCi9obUAA8DDONQ4_AygDBQ-CYK7riMvYkiTlxM_wMUwXdc2C5ZSq3x97ixTYuGJqrY9sOE0BTj-i1EbgxwBqJoH5GXBO-gAAgDRbyHgieh-7Y4IUAYKBLDFbwgTrPkJ5PqKTwJ_AgYeeUUI8mMftePwyg_SdSyADAZpIyojeyIe_QkUnksTwGVQcuMxSwMEz8YGAByb1kr_pWXj_U9Xxq5bNK29OWeQzqdDgbRThR3vSN3grt7MMxudlaXoqLQpDzCfm2TAAdrociUDdbCKWUrjghOY04n4R7IZQhuZIbAsSlADHh5uL-d3EG16n81vRp64aShhXlXMb03R2lOw20WR8CMwa1vcuu5dh4f5RYq63XZFMfZ_AmTnE5ImoMMhpBGmgwZ9ew8PInfJ64NqAxaoZl4QjtIh4kHlfmVVtAttoZ779RoaAny-IsUb6-ApgPjYWuhj1nng5hPZ5c8g9RnpgijUgTcoSxwT0HKpUkEqAxa8Z5ZvCRzBur4WmddwR_rrehopklGG3Dfw4rtF_yQWjdLTqpUboMchqDJvlLD5GRKBVRDWq5Zujw_StlHfH2rux9W3HE__5uYg_mgAUNFRsllmRencfApUv0BJ-wTsetBOLRJmDDAZxA06m6axdSD_dR24wp_l7CjuehPL2871XRQTuPB9Gx36HJZLUW11ekA5IrTjLcPend8q1O4JPrQ8XvQaZ3xL7x6B6o_CH8H6AbeDoEMapXCowvsG4zhrWtM9hBulDB5TbtSZf1MV4n_dHzRKNNhcIvVPLdC8cV2ozVYtDk1WmS84Iq_s3Djyp_0ukOu4ISce3goM3AFoxNhNvOC7HS-51A3AnwGQaOZoDmkJjcbqvwO98aTh0fT5R54STfG7Dvtn-u4DzGb2LgZNHg1egIWhbYTOkNe521dqZ1_9LEDTXWn-E_sYQ9Gsc18IG5wZ3QRLMz9NMrMwMKTVt7qW6CKcYO_rUvHx8X5fMo7LAHsryJTv5GpXwobNNvIQz2vO0GeNvclJt_fCfr53v0g546dAWMG59tWIQjdJEx4YEeUEsacxeYa8eBGha1ou81L2-2JOQYD_QXkhwXY3WlhvAXAhsFnssdnwPnHTjtMvBSWDfGax1EM9s5OfsK0kSUJ4DMImodJdk5jb3j-NcWDwHuuL5BepujGa7U7XaI5L14Mq-SbHm7Rasvo49Q-ZH8i5-6fCEURMGlI4ZpqC0KPGoU3a8XT9tBhOnXAsUtaZfuJ5Z1dcF8BaWEM7grftq4M6tJiwdZrx-l_pFQKhkVIX85ppzWAcWChWirwLLSf3kOnj0uobou38z3JyS5vawfXfn9Ct0kp6NNQuFnefNdOoPs8pvDdzdR--tFWMHLO3kIEONaVvAE62STZUysi9hOzxzQPElERGXd-VBG_1ak8rgWYvREgxZHGqwSv-KbviPTxgP4Io59qKF4DTjcHaR9V3NanfpH-QD2G_oI9_UU8Paq_2eDdKGEHatcxvf9_9XdCzaWgGENzoVmCfOb5VH9t84k65MBaA_n-QbLjcPr2QXICEAaK_YNkx00YWSxw2UJfNS4GzB5DCmsMpHt1189ccJce3SfEdt2BTl-nvAnRl-Wj1xupfNPA4QdW2tr9rVz_9RVfCwxO2OmBFpGJTnK8w1I1kZwTMWiuhpT-Jp8lDaWuatw8Tcju8p-Usr9z3RjgJ_4G33FtrjEnj4-T6RV5vLok89ubm9s_rv_xhcyvby4fyOOtHr74_Qu5v7y7vX8cbS8P7w5dQ8b4wdLxq8hXgBY_EmJ6lqpXlB9UwfbCGe8frTTwGQuMzxw-h0GuPmGHU1njoEiQvmZk7zI5a6hUfHOZ7D9M4t_iG9OmR4R7F9n868U_b_59_6_fejRn2bmXJV5Cz5RQBT9__XwRA2slliveErWiFbGH3zCK459FnnVtcf75m_EgCOLkbHWe5CHUrjiOE-6GeeQ7PAj91HZ4TqPU9dOzgqa8kOej4GIUzM7EuWu7sDNzEiewbccd-0Gepr6T8MSPgsTLR74NO29RjJHwuG6XZ-15_01ct5Qwqb-E202CW-OtGN_ip51a1e25rEsuG3qm2T3XvP4PRHRy3Q">