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

    <tr>
        <th>Summary</th>
        <td>
            [wasm] LLVM ERROR: only one .init_array section fragment supported
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    The test case in https://github.com/llvm/llvm-project/issues/55111#issuecomment-1127491075 produces a crash

```
LLVM ERROR: only one .init_array section fragment supported
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0.      Program arguments: E:/code/emsdk/llvm/git/build_main_vs2019_64/RelWithDebInfo/bin/wasm-ld.exe -o out.wasm @wasm_files.txt --export-if-defined=main --no-entry C:\\Users\\jukkaj\\AppData\\Local\\Temp\\llvm-reduce-e363f2.bc
 #0 0x00007ff790043ab5 HandleAbort E:\code\emsdk\llvm\git\src\llvm\lib\Support\Windows\Signals.inc:418:0
 #1 0x00007fff84601891 (C:\WINDOWS\System32\ucrtbase.dll+0x71891)
 #2 0x00007fff84602861 (C:\WINDOWS\System32\ucrtbase.dll+0x72861)
 #3 0x00007ff790036936 llvm::report_fatal_error(class llvm::Twine const &, bool) E:\code\emsdk\llvm\git\src\llvm\lib\Support\ErrorHandling.cpp:122:0
 #4 0x00007ff7900369a1 llvm::report_fatal_error(char const *, bool) E:\code\emsdk\llvm\git\src\llvm\lib\Support\ErrorHandling.cpp:83:0
 #5 0x00007ff792422939 `anonymous namespace'::WasmObjectWriter::writeOneObject E:\code\emsdk\llvm\git\src\llvm\lib\MC\WasmObjectWriter.cpp:1868:0
 #6 0x00007ff7924203f2 `anonymous namespace'::WasmObjectWriter::writeObject E:\code\emsdk\llvm\git\src\llvm\lib\MC\WasmObjectWriter.cpp:1453:0
 #7 0x00007ff7923c1e3a ::{dtor} E:\code\emsdk\llvm\git\src\llvm\include\llvm\ADT\DenseMap.h:756:0
 #8 0x00007ff7923c1e3a llvm::MCAssembler::Finish(void) E:\code\emsdk\llvm\git\src\llvm\lib\MC\MCAssembler.cpp:942:0
 #9 0x00007ff79080b4df llvm::AsmPrinter::doFinalization(class llvm::Module &) E:\code\emsdk\llvm\git\src\llvm\lib\CodeGen\AsmPrinter\AsmPrinter.cpp:1982:0
#10 0x00007ff7921957e2 llvm::FPPassManager::doFinalization(class llvm::Module &) E:\code\emsdk\llvm\git\src\llvm\lib\IR\LegacyPassManager.cpp:1498:0
#11 0x00007ff79219d201 `anonymous namespace'::MPPassManager::runOnModule E:\code\emsdk\llvm\git\src\llvm\lib\IR\LegacyPassManager.cpp:1585:0
#12 0x00007ff79219c780 llvm::legacy::PassManagerImpl::run(class llvm::Module &) E:\code\emsdk\llvm\git\src\llvm\lib\IR\LegacyPassManager.cpp:540:0
#13 0x00007ff790c5c09f ::operator bool C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\memory:2672:0
#14 0x00007ff790c5c09f codegen E:\code\emsdk\llvm\git\src\llvm\lib\LTO\LTOBackend.cpp:430:0
#15 0x00007ff790c5b90f llvm::lto::backend(struct llvm::lto::Config const &, class std::function<(unsigned int)>, unsigned int, class llvm::Module &, class llvm::ModuleSummaryIndex &) E:\code\emsdk\llvm\git\src\llvm\lib\LTO\LTOBackend.cpp:528:0
#16 0x00007ff790c50a60 ::operator bool E:\code\emsdk\llvm\git\src\llvm\include\llvm\Support\Error.h:235:0
#17 0x00007ff790c50a60 llvm::lto::LTO::runRegularLTO(class std::function<(unsigned int)>) E:\code\emsdk\llvm\git\src\llvm\lib\LTO\LTO.cpp:1139:0
#18 0x00007ff790c4ff12 ::operator bool E:\code\emsdk\llvm\git\src\llvm\include\llvm\Support\Error.h:235:0
#19 0x00007ff790c4ff12 llvm::lto::LTO::run(class std::function<(unsigned int)>, class std::function<(unsigned int, class llvm::StringRef)>) E:\code\emsdk\llvm\git\src\llvm\lib\LTO\LTO.cpp:1039:0
#20 0x00007ff790418f3a lld::wasm::BitcodeCompiler::compile(void) E:\code\emsdk\llvm\git\src\lld\wasm\LTO.cpp:138:0
#21 0x00007ff79042082e lld::wasm::SymbolTable::compileBitcodeFiles(void) E:\code\emsdk\llvm\git\src\lld\wasm\SymbolTable.cpp:77:0
#22 0x00007ff7903ef16c lld::wasm::`anonymous namespace'::LinkerDriver::linkerMain E:\code\emsdk\llvm\git\src\lld\wasm\Driver.cpp:985:0
#23 0x00007ff7903eddc8 ::{dtor} C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\vector:673:0
#24 0x00007ff7903eddc8 lld::wasm::link(class llvm::ArrayRef<char const *>, class llvm::raw_ostream &, class llvm::raw_ostream &, bool, bool) E:\code\emsdk\llvm\git\src\lld\wasm\Driver.cpp:98:0
#25 0x00007ff78ffeada8 lldMain E:\code\emsdk\llvm\git\src\lld\tools\lld\lld.cpp:164:0
#26 0x00007ff78ffeb4a1 main E:\code\emsdk\llvm\git\src\lld\tools\lld\lld.cpp:220:0
#27 0x00007ff79249d05c invoke_main d:\agent\_work\63\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78:0
#28 0x00007ff79249d05c __scrt_common_main_seh d:\agent\_work\63\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288:0
#29 0x00007fff86296fd4 (C:\WINDOWS\System32\KERNEL32.DLL+0x16fd4)
#30 0x00007fff86e9cec1 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x4cec1)
```

I wonder if line 1868 is using the wrong error abort function?

![image](https://user-images.githubusercontent.com/225351/168594010-ee238f0a-8a67-4600-ad52-f170df8209a5.png)

That is, is the function trying to validate a property of the input file? If so, it is producing an error message to the user that asks the user to raise a bug report: ("PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.").

If the root issue is not a LLVM bug but a problem with user provided input file, then it seems that the error message should not be asking the user to raise a bug report?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzFWVtz4joS_jXkRYVLlu8PeSBAzqY2nEyF7KT2iZJtGZzYEiXJJOyv35bMzR5yUkPOnKEoI8t299dfS93tJhX59vppxZBmSqOMKoZKjlZar9XAGw3ILXyXpV41qZOJGk6qarP_Ga6leGGZhtNSqYYpGASB67oD4tkJeKJmXA9dl0R-4uIoQPBI3mRMIYoySdVqgCcDPNodQ7z72tP7--8zNH18fHgEJEjwagsHhpySl3pBpaRbpEB7KTgqJF0aTUg167WQmuWtiG_309F8CrNpXWpQmTZLJJm5A2nRsxKuKceY5Qi5hHNEeQ5cZFWTAzvAkMWLUpq9akkz5rQq5homUN7UayPJTmEH2c83KZaS1ojKZWPQGV1o2irMRM7gh9Uqfz2yCkxbJGWVL2pa8sVGEewmi9CH6UdWPYMnJiy944Uw95Ucjm9U1cMqd9g7Q0OBRKMdM4UGPja_i6KsmHL0u0bDIXs3tg_LYpizouRAkzcxeuASF0OAKLdobAAGY_j-RzGp2uFL8_pKX9rxaL2eUE3bk3uR0aodPjHgwI7s4pDMOHrIvNAriJNmLTcI1gZG-B3DJyqKKMHY92gaoH8B3RUbpcY30xaC5SgYtxy1UuHHcBSMlcyOU1WZwnHe-h5GzyXPxZuBPi-XnFYK1kwGMn03hiM-InGPSIrYD7EbJy7MxzsOnu_-nDw8z42crdKs9ggMm0zqFPaJk1fVgNzg98g8NSDJUSzpiSVxeIFY81RHrNflzQsTL0SWAhDrjdqFvSjAN9WCSSkkqMwqqtTJTU9v4HaUCQ67fUDCARmjVAjQmHyZ9alRad1Y8qWTrc2GcAnpMu7_YAN1P7VhReUB8uhXQ469LuLgFDHxCUm8BEGQolzwbS0ahTitmVpDSBiQqDXjGTbeQ2pi47MsNZPt7JsZP3DWXrkQ_MxssL78Pdtx2FvgYQ88hr34FfC_DLkf9GiPOsi9zGUeRS2UQXSTa1gZ0eSnkezi-XFiNHmC44RxxWZ07axAXhSEXSjxOSjHNTsbj5RidVrtqbqFDAWZjcQbUeaXL1PL14nwHVWJ39tSSWdLxTj18-IE3kjV32TJD47MBeCjVfk_alLnmRAxgwxdsTY6XIp9DLf_wbgh-Kj-9GTv9yQ-scZE5E5yIG4SRIycgLv99g3Qziiny3_UoLtHk-zYkmbbEwCH1ZvEXSvcnhU5pPHP9t3sR9Nkwx_4Dv6vwB3EQRc36eHOohifMFlZQe34RNxdva4OgH-HAwIfd-3opsosyHBS7KKHWDNJIXzYJLKvdval2q0plkyqfo8NVrMBy0wKJQqNvpeqoRWa6yYvBVwxlZld6nXdQEm6hfF3WweBXFN7zOb21PUdEjuQNTyvE4BqVgtpuCRh1NsD_jn0hq8l4xfSd__00B5voFxlPN8R53s94oKe6jTBp8Gk0qIdpK0YYEpp2UBOOHPPWPCiXHaLjXZpKJ23txQNtxX8wBuDqIYrqNeYKbu1Yd-bmke6s3sR51fXR1fnTV1Tub3jOXv_2jr8gMiA9CJA2CMS0xCfXYFfTmG9csbmMChbunCic3DO-MyYt9_Jj2zZVFSaqf2e_gnHfZngfZByvaRrS9y1xS8KiFu_j9rkHJxPqL2E0J_aPD9uhLmGzLt8ZMXf7iDccxDpvuDBW1dhC6YdbPNW2o5uSm10QwRdl4fqKWvPLiufcjha-R2AXndvEreLj-CYsHP45ts6FdUTheqrg22H2yaLL-M8UbLDG0VduJ2kjD1WuGF2Du4n9cV9yV-ZnMhys6e6sjMz0wC4DHsrbF-Y9ooJ4vVw53kW_1jC_74MvIG3EGGoCCOvi9w_h_wM44bAM_XOyDSnzE7zxr1319N9fPLWS98WAvIoA_s_SGNnbmlfgi96Gf7YhV0eTquBuCgYzanl4ZIlo3dOac_guN-dod9VGvaUpj51Uf03aiSkW_SQ7rumn-Q4yCCMbsQrs204lLeKoeLkRsniTUijOTTrSR20brK9xszmjE2mNJW6WR_uOJ6zd7Yw7VHBnZKb4jnqUR-fw7RYKBC9e7DtECq2-ifgkbiHLzntcYUkCYvc_6zH9e_p45_Te484k_t72-NyzVOHHpdpceGOWJZkLPugdfbf-dN0ZsVynVfVoW_mm0eOMrs95fZ4h94EVIISlVDbmn6YaZygUqFGQYq0zd43KWBkO1CI2qbkMdvedprWxB0EN2UN5A-CCSDtdpUbxeTQXlVO20c3MxAQNPhq11InJPACgHzrhnGQ-NjFQ8aIFxeYDmMaRkM_xHhI84AMCzfCeRETnNDAWfPl0U57fFpRDXaYqADWGDv2qJGWW2ubQBt4V86pZoiabjwUTHqLRGHvLvm6AUtN-vVu0V2BlLCyjNBd694IoXzHDKQYBaYZqeZxYxoMAANVr-pkSiBJS8U6HXigyDh2QMiv7dITAiQ5Hfe3xkohjF2qYcY6Loxq-5-D0Z82uuUH0nKN3sBzrSkwsylzW2UdqAKGQB43NCkGUamlwKjosqRWoqlyqyllhqL9Yvsrkm6v8msvT7yEXulSV-waVlsbuifoS_-QXDWyuv7KHz0B9q9W18xPWORT6gV-TH2fscTzSUwgaNGEYMauKpqyShnY4ArO3lrKjVuCyVV5TTCE48ANXQILnzg48GIoY9w0inFOYVf4mEGcqw4-v5LXFpJZCHCxKpU-LogrSJqmCLYsGfm00Sshr1-alyur9trC_j_ktC1y">