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

    <tr>
        <th>Summary</th>
        <td>
            `echo /a/b/c | llvm-cxxfilt --strip-underscore` throws SIGABRT due to out-of-bounds access
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          lf-
      </td>
    </tr>
</table>

<pre>
    ```
 » llvm-cxxfilt --version
llvm-cxxfilt
LLVM (http://llvm.org/):
  LLVM version 18.1.8
  Optimized build.
```

```
 » echo /a/b/c | llvm-cxxfilt --strip-underscore
/usr/include/c++/14.1.1/string_view:256: constexpr const std::basic_string_view<_CharT, _Traits>::value_type& std::basic_string_view<_CharT, _Traits>::operator[](size_type) const [with _CharT = char; _Traits = std::char_traits<char>; const_reference = const char&; size_type = long unsigned int]: Assertion '__pos < this->_M_len' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: llvm-cxxfilt --strip-underscore
 #0 0x000077a8fa9bfd90 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/src/debug/llvm/llvm-18.1.8.src/lib/Support/Unix/Signals.inc:723:22
 #1 0x000077a8fa9bcd4d llvm::sys::RunSignalHandlers() /usr/src/debug/llvm/llvm-18.1.8.src/lib/Support/Signals.cpp:105:20
 #2 0x000077a8fa9bcd4d SignalHandler /usr/src/debug/llvm/llvm-18.1.8.src/lib/Support/Unix/Signals.inc:403:31
 #3 0x000077a8f9dc11d0 (/usr/lib/libc.so.6+0x3d1d0)
 #4 0x000077a8f9e1a3f4 __pthread_kill_implementation /usr/src/debug/glibc/glibc/nptl/pthread_kill.c:44:76
 #5 0x000077a8f9dc1120 raise /usr/src/debug/glibc/glibc/signal/../sysdeps/posix/raise.c:27:6
 #6 0x000077a8f9da84c3 abort /usr/src/debug/glibc/glibc/stdlib/abort.c:81:7
 #7 0x000077a8fa048af0 std::chrono::_V2::system_clock::now() /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/chrono.cc:52:5
 #8 0x00005bac031a3fb0 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::capacity() const /usr/include/c++/14.1.1/bits/basic_string.h:1182:23
 #9 0x00005bac031a3fb0 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_append(char const*, unsigned long) /usr/include/c++/14.1.1/bits/basic_string.tcc:418:34
#10 0x00005bac031a3fb0 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::append(char const*, unsigned long) /usr/include/c++/14.1.1/bits/basic_string.h:1470:18
#11 0x00005bac031a3fb0 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> std::__str_concat<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::size_type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::size_type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::allocator_type const&) /usr/include/c++/14.1.1/bits/basic_string.h:3584:19
#12 0x00005bac031a3fb0 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> std::operator+<char, std::char_traits<char>, std::allocator<char>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, char const*) /usr/include/c++/14.1.1/bits/basic_string.h:3659:31
#13 0x00005bac031a3fb0 demangle /usr/src/debug/llvm/llvm-18.1.8.src/tools/llvm-cxxfilt/llvm-cxxfilt.cpp:92:24
#14 0x00005bac031a44de std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::size() const /usr/include/c++/14.1.1/bits/basic_string.h:1077:16
#15 0x00005bac031a44de std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> std::operator+<char, std::char_traits<char>, std::allocator<char>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&&) /usr/include/c++/14.1.1/bits/basic_string.h:3709:34
#16 0x00005bac031a44de demangleLine /usr/src/debug/llvm/llvm-18.1.8.src/tools/llvm-cxxfilt/llvm-cxxfilt.cpp:140:71
#17 0x00005bac031a5ce0 std::basic_istream<char, std::char_traits<char>>& std::getline<char, std::char_traits<char>, std::allocator<char>>(std::basic_istream<char, std::char_traits<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&) /usr/include/c++/14.1.1/bits/basic_string.h:4119:50
#18 0x00005bac031a5ce0 llvm_cxxfilt_main(int, char**, llvm::ToolContext const&) /usr/src/debug/llvm/llvm-18.1.8.src/tools/llvm-cxxfilt/llvm-cxxfilt.cpp:182:43
#19 0x00005bac031a3215 main /usr/src/debug/llvm/llvm-18.1.8.src/build/tools/llvm-cxxfilt/llvm-cxxfilt-driver.cpp:18:1
#20 0x000077a8f9da9e08 __libc_start_call_main /usr/src/debug/glibc/glibc/csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#21 0x000077a8f9da9ecc call_init /usr/src/debug/glibc/glibc/csu/../csu/libc-start.c:128:20
#22 0x000077a8f9da9ecc __libc_start_main /usr/src/debug/glibc/glibc/csu/../csu/libc-start.c:347:5
#23 0x00005bac031a3275 (/usr/bin/llvm-cxxfilt+0x2275)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWd1v47gR_2voF8ICP_T54AfZF7cFdtHFbXqvAkXRNru0KJBU4txfX5CiHdvxXXOb3c2iKBDEEjma-c0nRyNmrdz2QixAtgTZLzM2up02C7WZz1rdPS1AjuIfqiFYEbBcQqUe9nN-OGykcnA-fxDGSt0DVJ9vAFR_-PDbRwhIuXNuALQGZA3I2tMk2mzDXeWXUQ1hII2MIC4TnJRh_Z-Dk3v5u-hgO0rVJQDV54iubo8ABd9pCMiaAbJuAVlzCIrVNWzrjBzmY98JY7k2wvMi69EaQNay52rshH8UkGX4W-M0wQkGZO0f7LfNgxSPgNYkywGtIde9deIwmOkKWtd53WjdMit5c_HMqlntmLkHZAWbe8Oks4DeTdQPTI2icU-DACT_WiZ6EIY5bSaXAlJa-fuRaRXxgWz5KN0OTlwgoL9AvmMG0OWRXVg7IfCbjYtyVhPpnacO7BojNsKInouJUxARiEjuiU4AwrbS_RaOfQi8DsreeZS0hrW1wjgfAYAUTTNoj2EF3U7aOaB3zcdGiR6QAm6YVCIEw6cPd_XnO2jHdi8dZLAdt9CIQRsHnYY-8Owp8rbS7cY24XofwzD-zAej_y248363dhQWkDVkvUcWogC6nYDcMLuDLeNfnGFceNmfHeNfYDfuhymKUQJQ9cnorWF7yMx23IveW6t-ReRBQCiC6IAQQkXByg2r2k1XofDo5AH7ZKeLT0b2Lgi_91AAKZ-JDHtstHVGsL03PVkF85IKnkLbGg7IuhPtuL0yw5R2yUSgpE-cz-PgbQnI-l-9PPgFue2ZsonsOaB1QajPABIVwFcK8C7tbinw69hPfP7O-k4JYwEpvwXGIzg-eI9glHlwKIIjt8BdwPg-NkqRtxHFEQY9h1F1HOMOwaB_lD0xVbLlidVJDsgSHWiHO-Sr5cQjveAhMKObFDbN4HZGsK75IpVq5H5Qwgcgiwl1U7Wtl3P22w9OAbI-55QEJVLv7TzKz17oQBA0TFrxWjk2mAiQdZL4uyfbicGn3aBtMGFgFiSTAtD6KDi_FMzKlFPIWp_trxXsusnA4akgocRetyihuIgSlJZsg86LoNG9nq6b38gprJ3YN1xp_mVa6fXjn0f0lvPTfyVb67p4zMwf6Ik4LmF_5EyCE-7xZl5uFvGWEW_WMo6oj4T2DG_T8MMB45dnyLGEk9V_q_DnFEwpzcPBcnYCxDOHs4Fx6Z6i4vGQedV52nqJZH2OL9n5BMalV5XQqGv1s-jafGzYMIi-A6T0e5O2gNSew-lc86fcRQz8ZSO44O8Ul76ApKE_oRj9LFb4ISYIcZAWyP-U0QL4_S1wLs4603Ddc-YAXf1oR9z57u4dnP_cp154_j2gnDW37wPg_7Y4KwrHvQt75G8vAjQrfQ-Cq1gEyM9UBE4vXGT5TU36o3P7zF8reFXW3-zAPKuOjbB3IL3lwE7sWb9Vf9hH_mEr7rRW9rhznEBc3sbXgir0FMfTNL1CkaadeLfM_Za9Eyp844zzqGf2_nr-76VLSJT8HUptlPvmlCxQdd5a5reC5JiSH2T_PdMSp77HK47VobiCknGBrsdhMs45Xm3ZYLlnoq1wSvbie4XgW0C-U0y9NaBSjH1AZSh68frtNHjRO7-Jzm_2TPaAlGFItYoTwzo2UM-To3ut1Ur3Thzc7Zbi24djePVMaVTkxasnwRn02P8yhDDGfh2UeWfkgzAnRP7fhIegq0FIJVAJm0bJ1vuDGddwplTzZwivJyPcji_nMXEedItvcHjhe7JoJIJfgOIcBnrZy1dPaM5wTJd-fR6Eh3ENJuVxrOeFkltCLyzxlUa4KZymRRy-eNkvWhhSZBezvNYH95WLl-hASJFN07zTx4tZt6BdRSs2EwtcUErTKi_wbLeocsrbTVakBeG4pajAFG-yrCo2XdnyMp_JBUEkxQSlhCCMUZKJtt0UZUc6VGJcliBFYs-kSo5fXmZhyr3AuCxQNlOsFcqGzz-E9OIRhl1ACMh-mZlFAN-OWwtSpKR19pmNk06JBcjR131uyRF0O6MfLfz8j7_Vy1_vYTcK6DTUo5vrzbzVY99ZyDgX1s5GoxZfP86Puj4syH8CAAD__x6ZNMU">