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

    <tr>
        <th>Summary</th>
        <td>
            clang -O1: fatal error: error in backend: Broken module found, compilation aborted!
        </td>
    </tr>

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

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

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

<pre>
    > This bug is similar to #69063, but #69063 crashed clang at -O0. This one should be at least -O1.

Compiler explorer: https://godbolt.org/z/Gzs1o3db3.

The following program `small.c` triggers a crash in clang-18:

``` sh
% cat small.c
inline void g(void) {}
void f(void) __attribute__((alias("g")));


% clang -O1 small.c
Alias must point to a definition
ptr @f
fatal error: error in backend: Broken module found, compilation aborted!
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: /opt/compiler-explorer/clang-assertions-trunk/bin/clang -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-9.2.0 -fcolor-diagnostics -fno-crash-diagnostics -O1 <source>
1.  <eof> parser at end of file
2. Optimizer
 #0 0x000000000372dd18 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x372dd18)
 #1 0x000000000372b9dc llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x372b9dc)
 #2 0x0000000003674866 llvm::CrashRecoveryContext::HandleExit(int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3674866)
 #3 0x0000000003722d2e llvm::sys::Process::Exit(int, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3722d2e)
 #4 0x0000000000bece6a LLVMErrorHandler(void*, char const*, bool) cc1_main.cpp:0:0
 #5 0x000000000367f203 llvm::report_fatal_error(llvm::Twine const&, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x367f203)
 #6 0x000000000367f368 (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x367f368)
 #7 0x0000000003126173 (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3126173)
 #8 0x000000000398eb7e llvm::detail::PassModel<llvm::Module, llvm::VerifierPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x398eb7e)
 #9 0x00000000030f59cc llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x30f59cc)
#10 0x000000000399ee30 (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&) BackendUtil.cpp:0:0
#11 0x00000000039a2216 (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) BackendUtil.cpp:0:0
#12 0x00000000039a2829 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>>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x39a2829)
#13 0x00000000049990bf clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x49990bf)
#14 0x0000000005e9b6f9 clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x5e9b6f9)
#15 0x00000000049982a8 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x49982a8)
#16 0x00000000041fc4f9 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x41fc4f9)
#17 0x000000000417d9ce clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x417d9ce)
#18 0x00000000042db54e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x42db54e)
#19 0x0000000000bef0e6 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xbef0e6)
#20 0x0000000000be69aa ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#21 0x0000000003fd9c19 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
#22 0x00000000036747a4 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x36747a4)
#23 0x0000000003fda20f 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
#24 0x0000000003fa23d5 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3fa23d5)
#25 0x0000000003fa2e3d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3fa2e3d)
#26 0x0000000003faad65 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3faad65)
#27 0x0000000000bec58c clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xbec58c)
#28 0x0000000000ae6751 main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xae6751)
#29 0x00007fc924e34083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#30 0x0000000000be648e _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xbe648e)
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
```

Clang version:

```
clang version 18.0.0 (https://github.com/llvm/llvm-project.git f2b79ed9c6c858426b15a0374103ab901b5b2ef3)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/compiler-explorer/clang-assertions-trunk/bin
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWl-T2ygS_zSaF0ouCdmy9DAPjme8fyqpTGVm99WFREvmgkAHaP7sp78CZFtoZjbZXe_d1V3KSWRA3T9-3XQ3YKI1awXAdbT6EK1urshgDlJd11KIlnN2VUn6ch1lt-jhwDSqhhYxjTTrGCcKGYkinOVlkmcR3qJqMKfvqFZEH4CimhPRImJQ_DlZeClSANIHOXCKKrBdHIi2A9JFlNxEycb_u5VdzzgoBM89lwpUlG3QwZheR9kmwrsI71pJK8nNQqo2wrvfIrz74TedyoxWWSDq4QCokZzLJyZa1CvZKtKhKE90Rzhf1FGeIKNY24LSiHjsiAkPPk4Lq3AiLsoT_0H6MLbgFaqJQUd5rpEJzgSgR8koaiNc2IcIlyhaf4jWN36M62wmnfs9MUaxajCw30e4iHBBOCPaPeI2wjjC5fjJPgSozkgc5_HnNMSzsXJQN2iDesmEsfYjiELDBDNMCj-qNwpFy6Tx3xpiCEeglHT0uwfLTEXqryCobfug5FcQqJN04JbmQVDrDbUzH7GCEamkMkAjnHqpdx9vN_e3SA9Vxwwizq8U9FI5TDMbM3MYqkUtuwjvOH88_hf3Sv4DahPhHdN6AB3hHSKCIiZqPlBA5gCjJS1Yo0gNFlevoFeyBq2BIi0H5Zvtm0RrWTNigCI1CKRrxXozOtK9IfVXRIeuPzlDskDobvQlotqhA2EsbhThnewtsHp04fjkwnjnfYpoDcpyo2OjBvE1wruKiWM3ilv6RFQTL1Hcotgusx3peyt3MP1gFhrFnSUBxfFzkcdEd7F-EYY8R9kNEwY4iu9RHLd1HRspeX0gTETZze8Cs4PLBV4kKG5qyaWKKSOtkNqwWqO4ETJ2dIbNn1MUZduRx-zWM5MukG0F2djQ0ROlQdmFDoIi2aCGcfAD8QJ97g3r2G-gfIuNIAlKnpPjn2yNKU0L5EyfbaJso1-0f7hTTBhnmAdv3eI8SJGnvdRGAekinFsLM2Hc6rML6S_aJ8IfkucRmF2IJ-TpDHlV0vot5FsORAz9Z3HPWkF4hItBuEBMEZdW_mVxWhgBThzgzNfLIs8nOLfWzl-glo-gXrZSGHg2vudHIiiH22dmIlxcnFEPJECazRjFFMPbvuDWtP8yxbdFlZT80oxaGAHO5RRnUkENOUEfP_766daGTE-bOsX5jYuQB6JQLYU2Y8MRaF2n-44wsah7G20S9_ekaTWzXYOTbMKIj6N7F7j3PnBP18XDk81Jo9b876HHYwroyeegs7y4rMYsD5fiOtCY4jxdZxfU6AUGGotAY1lAtZ66KgVDGB-9lWj9SVLgUbY9j_jkUqi1ybntV1CsYaDsG2HPnQIN6hHoRhD-omHW7VuZ_kQEaW3x9FpRdus-zmsGEbjJEUr-Z4Taty7pT57KgOsy4DppVmU9DbSO3_cx_q8S5Xk4EWUTUphLyxIgS6xGIqR46eSgkSAd6N7lz3IMnx0zG62hq_jLj8B7V3pH2ebLIMZs7cq6O9aDrXAjXHgMbtAHXxlualdS4i3ShvqeQbB_DrDvTUiHzdT9k2IG9sd8PXmJQkMGbvYUOBj4xoveTt4W31L7ICX_7KqpHfMu8T06Z2-dFZZonPgvhvHXgduaIiwOSoJxmv9ZU0zb_-v4_w4u8JyLwua98yzs_EYhnu5wkjfnEvRWtM4HndEnQ34EQkHdA1H1wXqtFDpIe5OhW0nhBxDfGPVAVAvmG4M-EtG-NeTM2r1RTLRfoAmbj3FkMxP4ypznV34SRg2aPcIXaLbC3M3s-tiM1ZD11PsXbcAZ6D_kERfMBs5ZgiAXFInLsiyTqnmDxK0UeuiOS8jXZA-KCO23qb8INnOzzf3Dsfq9cKgeQQazCErIFZRV3gRr4s7uozb3DyHGe-hIUMn9DRXdCCZAu5pxXmBSvLGoRscdy3KoBwNHXy4uzaiFEGAMqs5l2tTLkNGdstY9ra4pyIvD89oDeOsQ3pqWNYQUeoU_CW2IsPvrt1h8fz6X9lmPMJhCUPMuMa1Wy2AKI9jzTB5lTV4DfzVTGwcvCd0jC6CXsx1bk0B-2noFNd5GKfJiI3a2DfdsPpy-2sed9ngXnIHHN50ATmYTyEtC0JHwbfrgosBkGvcd4fxXqI1UP3U9f3M2s2RlZYwRcJLOSkQVewT1ZmrHYZnT0LJOS38IepbbDMK56F45Vl2vX3GnQrsmnFek_rpvhEV69hWve_SbbbqVXUcEnS_eN613ymHSpWgSbr_OmXnMWpOkt9_Xz89p6r9URLPaZjhmMTkWg8G2YW8UYUYfu2fiCOd2HUg16bdDJscAzn085-6VCK856SpKIrw-U4WL43nRz7J62x6vznrWZPldZz1fBnFPGnAF5vea7tLHQWuyDHw-mzkXwUmQ6f_vnMPSveiJMovkd71gGRJHcEZX7xJ3PrqfR3HHZhC6Zy_aAe8Vx78zdDM7jDrN7UKu5CccuNJqzghk9I8y8rOs9Pt0_Cyrj0yb9zYCr8LxyQN6wqzxx_PL72Vwuvv9G3mEjAY85jMeCc3f9aybyXNQGrxRE7zH_7-Rx0sGM09MwNx6fma8KmqP8liDHJG7ILIZQ8C30_MFqw6LKQAdVHwJgXy9SpGFezmtXmig9VisrZu6xEvIlkmRof2es8rGWqLMfgKBsyrCu-ci3-fLmDMxPMetGHxHvdBykTs12AqZasleVVTLApCXf0lOrdiT3qNXni9Z_RVgM9byqB79syGMA0VPzBwQPDNrcQpo7U7zBg0ofkRGIg2A2KTKLmdX1sENu1P0CEqPce2tO-4JyuNQlBaLZOEU_7G72kXLDGpwtS6BlnVeF6tiifMqXZEkWy_TJCNVmaTVqsLQnC3jD14sM6NJB_FVyCcxMe14y6-AUNT5c_UN6qVmz77L7Ss4B3rD1F-7oQ3JuaLXGS2zklzBdZqX6yzByyy7OlznWZNXBCjGy5ysUkqaBKekbMpkhVdQFlfsGic4S5N0mearbJUtcFMWqyKnq5SuIW1W0TKBjjC-sAQupGqv3DX3dV4meX7FSQVcu19tYDz6Fo5WN1fq2hFeDa2Olgln2uizBMMMh-vTzwMsE5e-4L8aFL_-8zf4bnb_CgAA____dLqv">