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

    <tr>
        <th>Summary</th>
        <td>
            Bitcode reader asserts in lazyLoadOneMetadata
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            llvm:bitcode
      </td>
    </tr>

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

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

<pre>
    While trying to load some bitcode from an older build from a few months ago, I ran into this assertion in the bitcode reader. Attached is patch adding reduced lit test

```
llvm-dis: /home/matt/src/llvm-project/llvm/lib/Bitcode/Reader/MetadataLoader.cpp:1058: void llvm::MetadataLoader::MetadataLoaderImpl::lazyLoadOneMetadata(unsigned int, (anonymous namespace)::(anonymous namespace)::PlaceholderQueue &): Assertion `ID < (MDStringRef.size()) + GlobalMetadataBitPosIndex.size()' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/matt/src/llvm-project/build_debug/bin/llvm-dis
 #0 0x0000000000c2fcaa llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/matt/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:569:11
 #1 0x0000000000c2fe5b PrintStackTraceSignalHandler(void*) /home/matt/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:636:1
 #2 0x0000000000c2e4d6 llvm::sys::RunSignalHandlers() /home/matt/src/llvm-project/llvm/lib/Support/Signals.cpp:103:5
 #3 0x0000000000c30595 SignalHandler(int) /home/matt/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
 #4 0x00007f377084e520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x00007f37708a2a7c __pthread_kill_implementation ./nptl/./nptl/pthread_kill.c:44:76
 #6 0x00007f37708a2a7c __pthread_kill_internal ./nptl/./nptl/pthread_kill.c:78:10
 #7 0x00007f37708a2a7c pthread_kill ./nptl/./nptl/pthread_kill.c:89:10
 #8 0x00007f377084e476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #9 0x00007f37708347f3 abort ./stdlib/./stdlib/abort.c:81:7
#10 0x00007f377083471b _nl_load_domain ./intl/./intl/loadmsgcat.c:1177:9
#11 0x00007f3770845e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#12 0x00000000007104d2 llvm::MetadataLoader::MetadataLoaderImpl::lazyLoadOneMetadata(unsigned int, (anonymous namespace)::(anonymous namespace)::PlaceholderQueue&) /home/matt/src/llvm-project/llvm/lib/Bitcode/Reader/MetadataLoader.cpp:0:3
#13 0x0000000000706edc llvm::MetadataLoader::MetadataLoaderImpl::resolveForwardRefsAndPlaceholders((anonymous namespace)::(anonymous namespace)::PlaceholderQueue&) /home/matt/src/llvm-project/llvm/lib/Bitcode/Reader/MetadataLoader.cpp:1104:18
#14 0x0000000000706b6a llvm::MetadataLoader::MetadataLoaderImpl::parseMetadata(bool) /home/matt/src/llvm-project/llvm/lib/Bitcode/Reader/MetadataLoader.cpp:1025:7
#15 0x000000000071117f llvm::MetadataLoader::parseMetadata(bool) /home/matt/src/llvm-project/llvm/lib/Bitcode/Reader/MetadataLoader.cpp:2346:17
#16 0x00000000006d6f68 llvm::MetadataLoader::parseModuleMetadata() /home/matt/src/llvm-project/llvm/lib/Bitcode/Reader/MetadataLoader.h:47:40
#17 0x000000000068ffdf (anonymous namespace)::BitcodeReader::parseModule(unsigned long, bool, llvm::function_ref<llvm::Optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>> (llvm::StringRef)>) /home/matt/src/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3921:35
#18 0x000000000067196b (anonymous namespace)::BitcodeReader::parseBitcodeInto(llvm::Module*, bool, bool, llvm::function_ref<llvm::Optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>> (llvm::StringRef)>) /home/matt/src/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:4117:10
#19 0x0000000000670d39 llvm::BitcodeModule::getModuleImpl(llvm::LLVMContext&, bool, bool, bool, llvm::function_ref<llvm::Optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>> (llvm::StringRef)>) /home/matt/src/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7355:13
```
[0001-Bitcode-Add-asserting-bitcode-testcase.zip](https://github.com/llvm/llvm-project/files/8972128/0001-Bitcode-Add-asserting-bitcode-testcase.zip)




</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWFuPmzgU_jXJi5UIzP0hD5lLd0eaqt3OXh6RwSZ4azCyTZvpr99jQwZIR5rL7mhVqaMMmGNz_J3vO77gQtL73V81FwwZdc_bAzISCUko0rJhqOCmlJShSskGkRZJQZlCRc8FHW2oYl9RI1tTa0QOcoUv0Q1S0JS34MnUHMxaM2W4tDawTF4VI-Bui_bGkLJmFEHjjpiyRoRSi0Ux2pdgF9wgw7RZeVcrbz9eY2_8uUchvjQbyvUq2KMVflcDerg1xBi4aVXC1TXplPyblWZ8tDdewPVigASlTw4UFN4zQygx5FY6lGXXgW_fi1LbxRfJAZb1EOzht2z7mO2m6cRgF-TbvbV9aNmpyQqnfav5obUctMaSCCbSyva-kb1GLWmY7kgJ-LLByRPVHwU81U6t33rWM3AXD5Vo_6AGcHdzhVaB6-z91Z1RwPknVm01_wauUvsCzqDyAv0iZEHECS6Q9VHqm5ay46JtgioCmUS3gyQfb6_3d9dI90UD-hFIG6toJ5WxSVYb02kXyTv4Hbip-2JbymamzFIvrnXPNBQgES1Npeghh2w-lYroGhWk_GwUxD12fwdJ9RnRvrG6DSYPqrKPSh4UgdRVh75hrXlByrjEzymDSOwTb09NbOK5HsBR4CHv6D38lbgqCZnlir7Xo0jAt3Eof1dOvHRqpMjXXGoDI6Rx0l0OeZG9Jrfv-s6SDqU_Wn60Bsg0IvQWOISuotjmhe9PAfjnAbCoQGdoBx-_ghTCjpbUDogV3r8NxDiILcQJIT5DyEIaP0bxp75dANVDqv47iCdspxkhsCRO2IIltsCLsgid0_VmaoZesqQqHOEkVZAkXhqyCHvI0TA6PKZxHocbwdv-uDm0_VBRbrXcQuJdeMcQwyt2gD_4jJY-CSZJifK8M7Wd0vPPXIicw4TH7PgibrLZgtu2MwJus-L8ja2DH8Iliaeu4ud01RqmgIPndpKkTrepk-SxTuavPddzmp15Ts_ZD5MYHbSTzDkditate7rXlHV2kuukduoqwjVzvrEVdsZMtnQdhFBApLDTq3Nl6KDv4sHVD1B9y8S4lsKY975z5xcob0VudwM5lQ3hg4rA9omGsWhbNPpQksGz7ycWajb59s9YiFgWvywHgwxeechB63M5BSS-F1L8A63Iw4L8llsVD_6Dia_ltJR4MaPlK_lSTEvxhb2T6itRFHYMet_SWYDDLPtjseVDAtlbOjEWnjNWxOSVjHVE6XluFVKKtw7Iw9FyhEdnIwbGafVEPP8Dblix3GI_Ax4vgMc0ruL0WcAl7cUc_ptBr-3Slbjld4KdLGGnVUWrp2aRsauxn_NQ5rOSkO3BTkuDJJczPqq-Le2amytWwe5-qvjQWTOsNsElLAiDLc_L49H3h4eCaF7m2n0IQKOyJsq6fmhsDTnssbndNA_VwfWiBRFCwjog1aze_dBie_vwreECv_7vdFnwN2ZUkGEbXxBN0qRLaRI_i4vXSjPab-B7dxHjSbL9XKWfaj2lVgjT0mwTZdXKztTyKGx-Jnijl5FvZzowMzy6KXgey-3tn-8vJWwYj2b8sDqX5qdET0mUBJFdWvzg0ZOYVXQBKvmb8c3NntLNeATUHjbj2c_GHueUBLa233i3iq4gmBcfCFRcuPOANEuw7zaTL-33YT_53XVNdwHNgoysDTeC7S4WR1bjkZa2B1qPbB7XvRK7159vRLGfhet6h6syJWERp14SYkpJlRBGksgPCxzFtMJrQQom9A4IX2E85kJxkhADq2u-wx7GXoxDYCbEydYvwrik2C_LFJe4iFahx2BnL7b29a1Uh7XaOVxFf9BQKbg2eqqEuO3qw1yf4J_0ppZqZ6fBtlm7CHYO_j8TFVGU">