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

    <tr>
        <th>Summary</th>
        <td>
            [Hexagon] `llvm-objdump -D` crashes in `.debug_info` on a Hexagon binary
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            crash-on-valid,
            llvm:binary-utilities
      </td>
    </tr>

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

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

<pre>
    ```
❯ cat test.c
int main(){}
❯ zig cc test.c -target hexagon-linux # or clang
❯ llvm-objdump --disassemble-all a.out
...snip...
00000000 <.debug_info>:
...snip...
   2ba94:       00 0a b6 01     01b60a00 {      r6 = memw(r19+#0x4);    r0 = memw(r0+#0x28) }
   2ba98:       00 00 8d 72     728d0000 {      r21 = and(r16,#1);      memw(r0+#0x0) = r0 }
   2ba9c:       14 00 0c 0a     0a0c0014 {      r20 = memw(r0+#0x28);   r4 = memw(r1+#0x0) }
   2baa0:       50 00 00 d5     d5000050 {      r0 = memub(r0+#0x5);    memh(r5+#0x0) = r0 }
   2baa4:       a2 00 00 0c     0c0000a2 {      r0 = memw(r0+#0x30);    r2 = memw(r18+#0x0) }
   2baa8:       0e 54 00 00     0000540e <unknown>
   2bab0:       0c b1 a6 02     02a6b10c <unknown>
 #0 0x000075d9cbdc49c0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/alexrp/Source/llvm-project/llvm/lib/Support/Unix/Signals.inc:803:3
 #1 0x000075d9cbdc21c4 llvm::sys::RunSignalHandlers() /home/alexrp/Source/llvm-project/llvm/lib/Support/Signals.cpp:105:20
 #2 0x000075d9cbdc25bd SignalHandler(int) /home/alexrp/Source/llvm-project/llvm/lib/Support/Unix/Signals.inc:415:1
 #3 0x000075d9ca245810 (/lib/x86_64-linux-gnu/libc.so.6+0x45810)
 #4 0x000075d9ca2a50bc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x000075d9ca2a50bc __pthread_kill_internal ./nptl/pthread_kill.c:89:10
 #6 0x000075d9ca2a50bc pthread_kill ./nptl/pthread_kill.c:100:10
 #7 0x000075d9ca2456de raise ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x000075d9ca2288cd internal_signal_block_all ./stdlib/../sysdeps/unix/sysv/linux/internal-signals.h:81:3
 #9 0x000075d9ca2288cd __abort_lock_wrlock ./stdlib/abort.c:58:3
#10 0x000075d9ca2288cd abort ./stdlib/abort.c:81:3
#11 0x000075d9ca228830 __assert_perror_fail ./assert/assert-perr.c:31:1
#12 0x00006285be4846ee llvm::ArrayRef<unsigned char>::slice(unsigned long, unsigned long) const (.part.0) /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:198:17
#13 0x00006285be484b37 llvm::SmallVectorTemplateCommon<char const*, void>::operator[](unsigned long) const (/opt/llvm-20/bin/llvm-objdump+0x1ab37)
#14 0x00006285be484b37 llvm::opt::Arg::getValue(unsigned int) const /home/alexrp/Source/llvm-project/llvm/include/llvm/Option/Arg.h:126:20
#15 0x00006285be484b37 llvm::objdump::invalidArgValue(llvm::opt::Arg const*) (.cold) /home/alexrp/Source/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.cpp:3435:51
#16 0x00006285be4b13b5 disassembleObject(llvm::object::ObjectFile&, llvm::object::ObjectFile const&, (anonymous namespace)::DisassemblerTarget&, std::optional<(anonymous namespace)::DisassemblerTarget>&, llvm::objdump::SourcePrinter&, bool) /home/alexrp/Source/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.cpp:2316:44
#17 0x00006285be4b31e7 llvm::objdump::SourcePrinter::~SourcePrinter() /home/alexrp/Source/llvm-project/llvm/tools/llvm-objdump/SourcePrinter.h:161:11
#18 0x00006285be4b31e7 disassembleObject(llvm::object::ObjectFile*, bool) /home/alexrp/Source/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.cpp:2660:1
#19 0x00006285be4b630d dumpObject(llvm::object::ObjectFile*, llvm::object::Archive const*, llvm::object::Archive::Child const*) /home/alexrp/Source/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.cpp:3321:3
#20 0x00006285be4b84c4 dumpInput(llvm::StringRef) /home/alexrp/Source/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.cpp:3403:15
#21 0x00006285be4b9320 void (*std::for_each<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, void (*)(llvm::StringRef)>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, void (*)(llvm::StringRef)))(llvm::StringRef) /usr/include/c++/14/bits/stl_algo.h:3785:22
#22 0x00006285be4b9320 void (*llvm::for_each<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, void (*)(llvm::StringRef)>(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, void (*)(llvm::StringRef)))(llvm::StringRef) /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/STLExtras.h:1733:23
#23 0x00006285be4b9320 llvm_objdump_main(int, char**, llvm::ToolContext const&) /home/alexrp/Source/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.cpp:3748:17
#24 0x00006285be486d18 main /home/alexrp/Source/llvm-project/build-20/tools/llvm-objdump/llvm-objdump-driver.cpp:18:1
#25 0x000075d9ca22a338 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#26 0x000075d9ca22a3fb call_init ./csu/../csu/libc-start.c:128:20
#27 0x000075d9ca22a3fb __libc_start_main ./csu/../csu/libc-start.c:347:5
#28 0x00006285be486db5 _start (/opt/llvm-20/bin/llvm-objdump+0x1cdb5)
❯ llvm-objdump --version | head -n2
LLVM (http://llvm.org/):
  LLVM version 20.1.6
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWUtv4zgS_jXMhbBAkXr5kIPjtDEL9GIW09m-ChTF2JymSIOk0s4e9rcv-LAtOU76MdszGKAbRkePYtX3VbGKJZJaK7aK81tQ3oHy_oaObqfNLZX8YPY3ne6fb0GF0g-twDsMlvdgtYGMOui4dRkDaCWUgwMVCuAG4CWo70B9P5P-j9hCxtIAuHDUbLmDO36gW60WUqjxAAEmUBvIJFXb2WApn4aF7n7vx2EPF4teWGotHzrJF1RKSDM9OoBWWZZZJfZZlgG0QukfBGSd9bwbt61QjxqQd4CsLoUhhLijywIQf-n_IQQRhV0FUR7v865C1Kur76KEqSAg93Dgw2eAG5MvAb4DmKBD4T1AgpRBMxl0FAlegtFHyXYzt41g08Mah_saN32kcrKN86CYqj7YrgBeA0zys2X40igKNsl9QDU1zc6m8yJYZ558gEIRQygvpqbf4hStm2LumjmCiWmKzqZLlIj3ZbjvS8-5nLI-WR67menyzHvgw86_K7_Emk6CTXEyjVhkzbxpiq-ZnpMmaBJsPGfdvE57GmwOyyKZj8FHqCwQ9_N2VJ-U_qz8nD0O7SYeQwx2OaQVRHGeIEyrLkfs5VAPA6KD112X_ZJ1PSuWDIXE8ulAVvbZxot_GaHcB0fZpwdDGQe4OQsZ-rnV1hlOB4D9nINCuUAOb3Z64ABvYt0AePNBj8YP34Tk3Rv9O2cu3fo_ovNC436vjX_8byUO_oHYKiptJpSflA0igKxIYpBfMMA5K64x-G1UUc0vVPWSGwtSuv1hkEd0bL8HZJWjEpAVRgkevoRXdj2cAQG4-bH-KnKPKE-AyBQQxUXZ5AgGXyRth6ZqqyIW38VWjfEFy6zOKoDv0CEM8RM8KizmCmmJOgbbdu92htO-_SSkbMWwl3zgylEntIIZwBu1dxLgzVQsC2h9BtZVUl5-jXLluFFUvqm2WYbYJLXVNbXTMW_qyhGaKqsvPVr1HBoqLA9abAgGwJss3D3bnu-tV6ttCFaQDHpxDcjqyLyZa8VNw3p4pNpGpW0nNfvU0oTXuj6G8MLSGGeFfbZPIZhq9LdHXQubZsvOuymfpNbyGoS2pZ02rg2WPxv_Z248vA58yiYp82mKrikLsq8NP2Hxw_MXwwnyWKzlxrV7bow27SMV0RPx8eli4d8HnSRPqeB1HnOzwk3Z8aIpKs4npWNlDH3-jT-GuhnaoR6yHTWpWSArK0Uohae3Uqutr38XD5aQaWWdz7JsT43L0Pdlu1BMjj0_P1jdP_j_E84QwDy0DHmdKJJLih2pJxQ_DFTKj5w5bR74sJfU8bUeBq0AWXuqETjAK8_qSYv-xF3vuaFOm9gfvnTChDPAG70_0lhgBPCm8z3hZtrAhcqS047UsbJ48MXb4L3SFKhtvNhy95HKcRaTVFuPaP6wz3_d-xIW3L6NHsfVseB70OUXQCe64UaoJypFvzLbI-zr7CZhWIZZxLTsv28OOa2lfeH72W1ayEhB_LpRHrOlmhPrctKVcNJ0_9pFS82MrH8UruPrjZA8NQlfEjuSDsIAN1Rp9Tzo0UJFB273oQ1ZxlH3ZxjmIXxEpHHW9Sd3Cu3rMFl_uy7y7hrmcxyjz0OP5NfzINppLX90iHxU4pIZQ1RfhIjk_NW5N8ccHv33gsd39kev4J8pj5lThWp8nGDNNfTfN8FWf1oEqgpNVpTlBYWKoB568W_Ffl1sZdhOPPFZVX5TMt6sd0L2FzXkB9YNgicLN0YXLmkKVgSX_EPtx7lHPjgj1NavuD-8tIVPiLxMGPMLjEsP2y93cflanarIozYtp2wHyLptt2ps2eEQ37St0magshUuLYxkfRrWerk8jzcdtYK1NnBNy-ysUvkHrTNUOHt87evPRIJKqVmycWpI3qX5cJJ6Csv6XwDjFZE_GcbplzqXFEpf5l-bc0G6-RnYv09gf8bq7xOrr03C9HtjXRitmXXmLGyp3QG8yYvwceFs-KKULZVbHVoNUjdhWwanio-_UPHPxicl_2dUZyGtvrm0_nTg9zvwy2nx_9lN-PDw_t3BGRr3g_KakPChkfKGXMsbP75NHVabznvCZ_c67pd4Zhe96oPWcq2V4wc3-c77wV1fXUz3RvDl9kLV5004rvoWFN0oZB83Nb4CyaI34omb41Zxc_50wBc7nZgS0sC2laLzU5Aa1zIqZXBv2OJidny505d2LK8NCuGsi0lnXr2w-NjBIC-UcJdG4qXXvAia404obiZ7H7i-pnHG4Rr8q5pJUQOyOjbozYtQdSWMKr9xh4n1XZl2mF47SHzixgqtIKjXcMdpDxfKLxvv33_8pze2cy58QuNNMpBpsw13y3iGCGEQParBKMuzyhs8Hpje9LekX5IlveG3eV00BV6iurrZ3fZF2S8rXteswV3ZPJZd0VQdeiwfcVnVTXkjbjHCJSpxk6OiIGVWl2zZ52zZMN6Tpl-CAvGBCpkdgd0Ia0d-mxd5XaAbSTsubTjUxZgZancLrRZhEwpgHI4LcUrSTihqnhejE1I4wa1_X97fmNvgrW7cWlAgKayzZ1tOOBmOjH-JJ7igvIegQnP_3oMKwWCbW-iTrULTk9gKQa0ghUkFjDhuRiNvveftyfVb4XZjlzE9TM5D5skZuNvQFwT6T7f4fwEAAP__u507GA">