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

    <tr>
        <th>Summary</th>
        <td>
            clang accepts invalid wasm32 assembly file and generates an object file that traps llvm-ar
        </td>
    </tr>

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

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

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

<pre>
    Minimal repro:

```
.functype a () -> ()
.size a,0
a:
```

The above `wasm32` assembly file is obviously invalid, but `clang` will generate an object file without any warning. When using `llvm-ar` to create an archive, the object file will make it panic with something like:

```
llvm-ar: warning: creating 0
LLVM ERROR: malformed uleb128, extends past end
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: llvm-ar qL 0 Apply.debug_p_o
 #0 0x00007f3445fa0731 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe4e731)
 #1 0x00007f3445f9e46e llvm::sys::RunSignalHandlers() (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe4c46e)
 #2 0x00007f3445fa0c66 (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe4ec66)
 #3 0x00007f3444c3b520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007f3444c8fa7c __pthread_kill_implementation ./nptl/./nptl/pthread_kill.c:44:76
 #5 0x00007f3444c8fa7c __pthread_kill_internal ./nptl/./nptl/pthread_kill.c:78:10
 #6 0x00007f3444c8fa7c pthread_kill ./nptl/./nptl/pthread_kill.c:89:10
 #7 0x00007f3444c3b476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x00007f3444c217f3 abort ./stdlib/./stdlib/abort.c:81:7
 #9 0x00007f3445edb0e3 (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xd890e3)
#10 0x00007f3445edaf16 (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xd88f16)
#11 0x00007f3447669506 llvm::object::WasmObjectFile::parseCodeSection(llvm::object::WasmObjectFile::ReadContext&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x2517506)
#12 0x00007f34476655df llvm::object::WasmObjectFile::parseSection(llvm::object::WasmSection&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x25135df)
#13 0x00007f344766511d llvm::object::WasmObjectFile::WasmObjectFile(llvm::MemoryBufferRef, llvm::Error&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x251311d)
#14 0x00007f3447664cce llvm::object::ObjectFile::createWasmObjectFile(llvm::MemoryBufferRef) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x2512cce)
#15 0x00007f344765cd4f llvm::object::ObjectFile::createObjectFile(llvm::MemoryBufferRef, llvm::file_magic, bool) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x250ad4f)
#16 0x000000000040bc80 (/usr/lib/llvm-14/bin/llvm-ar+0x40bc80)
#17 0x000000000040b58f (/usr/lib/llvm-14/bin/llvm-ar+0x40b58f)
#18 0x00000000004084d7 (/usr/lib/llvm-14/bin/llvm-ar+0x4084d7)
#19 0x0000000000407fa7 (/usr/lib/llvm-14/bin/llvm-ar+0x407fa7)
#20 0x00000000004061d6 (/usr/lib/llvm-14/bin/llvm-ar+0x4061d6)
#21 0x00007f3444c22d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#22 0x00007f3444c22e40 call_init ./csu/../csu/libc-start.c:128:20
#23 0x00007f3444c22e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#24 0x0000000000404e45 (/usr/lib/llvm-14/bin/llvm-ar+0x404e45)
Aborted (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJylV9tu4zYQ_Rr7hbBAUfcHPyTZBEWRYBfJovtoUNTIZqNbSSqx-_UdUnZsqd429hqGRIqcM2eGQw4nb4vd8kk2suYVUdCpdhbczOiXGT08Y7r_u65X9o0wuw4IJzOWzlhGFrPgft_ez9Hybxyfsbu9ED9ijtGG5_cNzs7bNyA48M51HTBsEK411Hm1I6WsgEhN2vxNtr3GL7J545UsUAPJe2PFRMWbtZV6l1VF1tCA4gZhG5T6E4QZQN6l2bQowJsdeeeqkc3aIz820JBeY9sCVdVbveDKQpmWCAV7GK7ERr6BVWmQ7xgVVdb8FUka0vFGCqeI6LYGs7G4lXyF__brQW1wcyBmm069BdjPenz844ncPz9_fbajuGRlq2ooSF9B7tsVuCOwNdAUGnloQ7A1CH57vL95uSe6z2vkyNFra7varTLWyo0xnbb82AP-18i9zz3R1tixvPavBQaHNRq7UuseNDbQMwWuhqj6ApxfhOJ6Q3IuXo3iArxB_YvBD6To6-7DC9Qj7vdNtWvFa_Tvuq-hMZYH2XuD_PVIKLnpumrnFYCcV92qHcQx4AJK6JbiLymDMIxKTpPAd6JWSXCjd3pofFOyMY7Cd8sJQ_U4SfH3VasN-hnNjK0Dca6NahfQD5XM8blN41UcLirZ9NvFuumHAbsYCz_0dOv5M3ZLtxACMvjYBpaiP6aYQRjDOYrPffMi1w2vfkOHVqD0fm9dxUKgkhELNnWUiOMrDUTJEXRwCh2KII8Y_QS0sKCxAw0ZiowwwzFmWvJEkNWqMxtcpmL1itttJeuuAhsvuD_ahngI23SmwtdJ81TCE-jmMMRHEh9VRZ9R1RhQuDSfVZKk-PDpUUl8Tsmp2GeR02yCnEy9HyYxWWsXSQ50aFpY19vpAjq7b7tWyy2-FZcaHDZL8HHimXQMzXxs2FMaTwwHZYphfUcdNz5Q9a0njnDZKAShyCkE14RgkWYo-REudovRCTQv_auiu0hTlBxBj7ZvEsdZROOT7TskgaH9A_PWV9d_wJwwfOu40nDXFvCCnzFMRyfP_wk_49LftRh7W-NOpqsOAxb5CXIeGcUmRkVRUV5q1GcM-pjzC-QD5DYiH0zJ-35xAfnJt1P6T1C3anfblyWoZyhtKjgO3ivVql-zBImOLAknloRCwE8smVox3EouseVa1kwIGLGOxqwjUYQ_C57zrK_xvr1lrWq-lsLd-Nq2utoiypHwyKLD6Tz8QpqL9JDBeq0-NLgriR9iK5fNoY8XNpfCnNAINZmiRml5OSoKjVDTCWoaFsnFqFZohJpNUBNMUBejWqFTVEYnqLFfxBejWqERqj9JS6zIKCZse6VYacOVWQmOObvmcrgUCN3_O_vt8-s5IW-D8Ra5DB4ftbKpVggpcTJYOZmpoqFp0RcO3SVEez3HLEuPoME50JEp56w4Cx4k9mYQHbHDifNDCKOLnW-FPpx_Y1M7lhoIIloF7jIPJyfaoZyZw9KPYz_J4iBj82IZFFmQ8bmRpoKlq9IIx0OlM_pQxZGh5JvUe7awOJRxelrHmQ3HwkXxTh9KhXmvquX1dUyUhCyZb5axPdN4GeNNPc78vGBZkgQpdinLoiAJ5xXPodLLWXQ7Y6yBd-IgsD2LvszlklHGaMoyP6VxwDwRiihhLIbCRygezEIKuKiVZ3l4rVrP1dJRwtpG42AltdHHQfQI3t8AnDrE5z2Wr2r5HWw2-h3rmbnTvnTs_wHyjZsR">