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

    <tr>
        <th>Summary</th>
        <td>
            Segmentation fault when building mingw-w64 v11.0.1 with LTO
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          HeXis-YS
      </td>
    </tr>
</table>

<pre>
    When I try to build llvm-mingw, lld throws a Segmentation fault error.
It is worth noting that there is nothing wrong with the default build process. When I try to build mingw-w64 with LTO, this issue is triggered.
The LLVM used is from the Github Release (`clang+llvm-16.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz`).

```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/runner/toolchain/bin/ld.lld -m i386pep --shared -Bdynamic -e DllMainCRTStartup --enable-auto-image-base -o .libs/libwinpthread-1.dll /home/runner/toolchain/x86_64-w64-mingw32/lib/dllcrt2.o /home/runner/toolchain/x86_64-w64-mingw32/lib/crtbegin.o -L./fakelib -L/home/runner/toolchain/x86_64-w64-mingw32/lib -L/home/runner/toolchain/x86_64-w64-mingw32/mingw/lib -L/home/runner/toolchain/lib/clang/16/lib/windows src/.libs/libwinpthread_la-barrier.o src/.libs/libwinpthread_la-cond.o src/.libs/libwinpthread_la-misc.o src/.libs/libwinpthread_la-mutex.o src/.libs/libwinpthread_la-rwlock.o src/.libs/libwinpthread_la-spinlock.o src/.libs/libwinpthread_la-thread.o src/.libs/libwinpthread_la-ref.o src/.libs/libwinpthread_la-sem.o src/.libs/libwinpthread_la-sched.o src/.libs/libwinpthread_la-clock.o src/.libs/libwinpthread_la-nanosleep.o src/.libs/version.o --enable-auto-image-base --out-implib .libs/libwinpthread.dll.a -lmingw32 /home/runner/toolchain/lib/clang/16/lib/windows/libclang_rt.builtins-x86_64.a -lunwind -lmoldname -lmingwex -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 /home/runner/toolchain/lib/clang/16/lib/windows/libclang_rt.builtins-x86_64.a -lunwind -lmoldname -lmingwex -lmsvcrt -lkernel32 /home/runner/toolchain/x86_64-w64-mingw32/lib/crtend.o
 #0 0x0000562c72076268 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/runner/toolchain/bin/ld.lld+0xb63268)
 #1 0x0000562c720741de llvm::sys::RunSignalHandlers() (/home/runner/toolchain/bin/ld.lld+0xb611de)
 #2 0x0000562c72076b98 SignalHandler(int) Signals.cpp:0:0
 #3 0x00007faa323bc520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x0000562c74ced584 llvm::MCAssembler::registerSymbol(llvm::MCSymbol const&, bool*) (/home/runner/toolchain/bin/ld.lld+0x37da584)
 #5 0x0000562c74d1b99e llvm::MCObjectStreamer::emitValueImpl(llvm::MCExpr const*, unsigned int, llvm::SMLoc) (/home/runner/toolchain/bin/ld.lld+0x380899e)
 #6 0x0000562c735e9591 llvm::DwarfDebug::emitDebugLocImpl(llvm::MCSection*) (/home/runner/toolchain/bin/ld.lld+0x20d6591)
 #7 0x0000562c735e1734 llvm::DwarfDebug::endModule() (/home/runner/toolchain/bin/ld.lld+0x20ce734)
 #8 0x0000562c735c70ea llvm::AsmPrinter::doFinalization(llvm::Module&) (/home/runner/toolchain/bin/ld.lld+0x20b40ea)
 #9 0x0000562c74f33e61 llvm::FPPassManager::doFinalization(llvm::Module&) (/home/runner/toolchain/bin/ld.lld+0x3a20e61)
#10 0x0000562c74f2e252 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/runner/toolchain/bin/ld.lld+0x3a1b252)
#11 0x0000562c738a4b1e codegen(llvm::lto::Config const&, llvm::TargetMachine*, std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, unsigned int, llvm::Module&, llvm::ModuleSummaryIndex const&) LTOBackend.cpp:0:0
#12 0x0000562c738a3cf9 llvm::lto::backend(llvm::lto::Config const&, std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, unsigned int, llvm::Module&, llvm::ModuleSummaryIndex&) (/home/runner/toolchain/bin/ld.lld+0x2390cf9)
#13 0x0000562c73898dfa llvm::lto::LTO::runRegularLTO(std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>) (/home/runner/toolchain/bin/ld.lld+0x2385dfa)
#14 0x0000562c738986bc llvm::lto::LTO::run(std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, std::function<llvm::Expected<std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>> (unsigned int, llvm::StringRef, llvm::Twine const&)>) (/home/runner/toolchain/bin/ld.lld+0x23856bc)
#15 0x0000562c7214fffc lld::coff::BitcodeCompiler::compile() (/home/runner/toolchain/bin/ld.lld+0xc3cffc)
#16 0x0000562c7210de23 lld::coff::SymbolTable::compileBitcodeFiles() (/home/runner/toolchain/bin/ld.lld+0xbfae23)
#17 0x0000562c720d49c6 lld::coff::LinkerDriver::linkerMain(llvm::ArrayRef<char const*>) (/home/runner/toolchain/bin/ld.lld+0xbc19c6)
#18 0x0000562c720cb3f7 lld::coff::link(llvm::ArrayRef<char const*>, llvm::raw_ostream&, llvm::raw_ostream&, bool, bool) (/home/runner/toolchain/bin/ld.lld+0xbb83f7)
#19 0x0000562c723a6a2b lld::mingw::link(llvm::ArrayRef<char const*>, llvm::raw_ostream&, llvm::raw_ostream&, bool, bool) (/home/runner/toolchain/bin/ld.lld+0xe93a2b)
#20 0x0000562c720105fa lldMain(int, char const**, llvm::raw_ostream&, llvm::raw_ostream&, bool) lld.cpp:0:0
#21 0x0000562c7200fdca lld_main(int, char**) (/home/runner/toolchain/bin/ld.lld+0xafcdca)
#22 0x00007faa323a3d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#23 0x00007faa323a3e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#24 0x0000562c7200f955 _start (/home/runner/toolchain/bin/ld.lld+0xafc955)
clang-16: error: unable to execute command: Segmentation fault (core dumped)
clang-16: error: linker command failed due to signal (use -v to see invocation)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWV9v47gR_zTKCyFBIiVZeshD4qx7CyTYxTq4tk8BRY4kNhTpklTs3KcvKCmJ5fg2Pm9btIsLHJuihjO_-cMZ_qHWikYBXAbZdZDdXNDetdpc_gJ_Ezb8-_qi0vz58q8tKPQZOfOMnEZVLyRHUj51YSdUsw3wEknJkWuN3lpE0RqaDpSjTmiFatpLh8AYbaIgvgniq88OCYu22rgWKe2EapBrqUOuBQP-ldKu9b1bo_23cK1_hziMvEb5G6MZWBuhY-AGXOE2T8fRt_dfPEjXCouEtf0gxRnRNGCAT7DuW0C3t7_eod4C9wS10d0g-C_CtX2FvoEEagEFuAjymEmqmgBfD3ZI8iiO0nBX5A95Gkqh-l3YqD7sq165PsQ4itPIURPtfgvyOMDlJHP6zuPpMzx-vf10tf6EbF91wiGKqr5BBjbaOK9g69zGBuQqwKsAr5oBWsR0F-CVhzL9hBuj_wHMBXg1KGwDvEJUcSQUkz2HQS9mqG1RRdmjM5TBhGntKHtEvO82XsrQFUdo-PtqdGNoh6hpeu9hjwMFeNXqDgK8Mr1SYAK8clpL1lKhAryqhm_JIx8iYYcEKfINbFAY2pYa4Ci85s-KdoKhENCNlHdUqOW3-7WjxvWeDhStJIS0dzoUHW0grLwbQo0iKSqvmRTVVqiNaw1QHiYRl_IjWJOrtnk6BjHBI58Ar7iUzDgc6R_gwYyroBEq0ii8jQK8qukjSFGh8PZMpmeOnGboaRwm7GNkr5L8tWsrFPdz2xoW4NVRsz9IGlbUGAEm0h8RMq34x1SdsOwEqt7B7mMys5WaPX5MZzdCnUY5tk6QDPUJYqE7gYi1cIJAdhp-RZW2EmDzjvQJjBV6CN7fnX2h7l0ouo0PrKMi_CyMKArlFIwfzaaPgm98Ht4_GBf5RO-EslPSHST1ytN6kVpyRTt4kQ4737JPzDgUSsqf6EYQjEJpW5ByaPUWzNB4BKNg7PufQ_6K7YcyE_jJN2Z2FGASo3gXx3Gc5ZgtcLzIcV4M5d3nf3Jln-3Y-GqEckN1uPflIsDFG5Gh2wdtnQHaBTj3xVYoF-ByKJanF4gAX8e7Kic4LwJcvkFMDiCmCYdjEL_1ai0aReUvVHEJxg7iz0SRJBxmKPChoaqyQDN5AS4mvcduG7GNL6Px8P_KiEyMFjWlBJOKZTieMI5OOlxITBEUWR3lA7oUZziegUv3waUMeFakeya6W15ZC13lQY4eg0ZYB2b93FVazpx5txw7EdPKusmflfZUV2dakyw4zYp0hjibIeZJVZYwQ_yl8kuY9RBVL7ChE-5XKnv43G0OUX_abcwL5iuPuVfD4paPwbjcY76-u9XsXF2KuCjLeWjk-7qQDMqsTPbE3WypqW-g6ps3LYbHW82OKLIG5tfO55sbxzzPymQGcXEAMVmQ9HsQFb_TvJdw_hTCMYMFmTu9mKNgixjoHoor2w1p5sXdXK-EolL8RkeD7JtpQpefja5KY6AzdOUsJGtCIN934-rrV2rtHVW0-S8AJBTHkL850efBeA4QA87wHkAJDWXPU7p-gzqE2Djr-383xqTCGZ5hnCVrUtC0SgAxzaGBuXDp9NhYalWLZpZu3qjuqWnA3VHWCgXTxLaOjy_rXo1ThSzfRnzabYA54AFZvhL2Svyzh4eNMzPSJfVLqpWQsJ6K1x7zacP5wEGCg--PI5_Gjzfi76ed-61QsKdn6Qd9N1HtOeh997rvOmqePysOu32ufsN7TdmjL_TvCpB3ET5wEWF1iY44phqZnOy1P_3yzi8_kKBIGbO6nM0tMndcWfCaHnPc7f2X1wn_DZpeUjMcghQ_l4fOtGuR8ZrO7Joe2jWv2Ed2_emsec78_RkU_2jQ2hmhmm9Q_0dDMq_YLCRny2OcpHVd-5CcTMN0XY-ta-F8cV3qbiNeV_dsfDp_7cYIq-s5oHwOKOaAyTFA4-bhnlYSZmAmoN5nP7IvqylgMgO2mO_LeFqy_BiwW6EewdwY8fRiJjn03A2i9krclTH02fubLFlL9_YUZzu4YknJ8hnqYo6aVaReHEPtMZ6Obj9A32_Kv_du3OC9_J6nZVWQejHTcraixoTmFFdvWo6nk_9vakJJKK721cQHZyhJnA11mU-hNaWUuR7jUvbH9PCrtuNrPHxwZhLXnA2QHrp3mF7QnGUNWjPOZtUU4_n5BiW8_IPnG7jkZTzjSQ55Qhqjhwc_7ME6atyg1x-VAulcSnpotDLL0Mj_TNuUWfYqYTgCDJM8IFfjjZhv9MMBK3IawQ5Y73xJ6Tqq_BQ5dpUW4IJpA8MNDfDv8x7z2wtDVFMhgSPeD-LscEQ1lD4LKHwa-gCQUE-aTdvZ8uCG6oJfEl6Skl7AZZIXOU6yZJFftJe4ZnVKEiD5gnBYZAtGgMR4kZcQL3CZXYhLHGMS53ERl3Ge5FGxyCnNqnRRVnXGoA7SGDoqZOSjPtKmuRhuri5zkhTFhaQVSPtyS2kuh0uuqm9skMZSWGffhjnhJFwesdy2BTVeEArV7N0RPiVJFEfJ613hRW_k5fn3bAPgfwUAAP__W58e1g">