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

    <tr>
        <th>Summary</th>
        <td>
            [llvm-cxxfilt] fails to demangle std::forward
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc++abi,
            tools:llvm-cxxfilt
      </td>
    </tr>

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

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

<pre>
    Encountered this when debugging a test program with LLDB (built with clang on commit `adc550918667c35b8f6066603faad97e2975ed76`):
```
frame #0: 0x0000000100006c18 a.out`_ZNSt3__17forwardB7v160006IRK3BarEEOT_Ru20__remove_reference_tIS4_E(__t=0x000000016fdfea34) at forward.h:26:29
   23   template <class _Tp>
   24 _LIBCPP_NODISCARD_EXT inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR _Tp&&
   25   forward(_LIBCPP_LIFETIMEBOUND __libcpp_remove_reference_t<_Tp>& __t) _NOEXCEPT {
-> 26     return static_cast<_Tp&&>(__t);
   27   }
```

```
$ ./bin/llvm-cxxfilt -n _ZNSt3__17forwardB7v160006IRK3BarEEOT_Ru20__remove_reference_tIS4_E 
_ZNSt3__17forwardB7v160006IRK3BarEEOT_Ru20__remove_reference_tIS4_E
```

LLDB gets this mangled name from following DWARF snippet:
```
0x0000a5e3: DW_TAG_subprogram
                    DW_AT_low_pc (0x0000000100006c10)
                    DW_AT_high_pc (0x0000000100006c24)
                    DW_AT_frame_base    (DW_OP_reg31 WSP)
                    DW_AT_linkage_name ("_ZNSt3__17forwardB7v160006IRK3BarEEOT_Ru20__remove_reference_tIS4_E")
 DW_AT_name  ("forward<const Bar &>")
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysldFvuzYQx_8a5-XUyLHBwEMeIJAtWttEaaZWe7EMGPBmIMKm7f77yZA0m36t9nuohZA4uPuez_c5hDGq7qRcIz9BfroQo236Yf2gikZIvaLBIu_Lv9dZV_RjZ-UgS7CNMvDWyA5KmY91rboaBFhpLJyHvh5EC2_KNnB_nyaASJiPStvZVGjR1dB3UPRtqywghkVZ-D6OViFjQUH9PKwYZoxhWglRRoEkUeDLMmCIYUQiRGOEU4Rj9zhf02M1iFYCIhQjGgN-x_NauRsrViGIZT9axDD_4_HJUs5XQdUPb2Iok-B1xdxXu-NvNBFDlu1P_DgSzPkg2_5V8kFWcpBdIbndPXk8QyTk3CKa3mRYVVZSUA-RCISFS-hlg2hMmLtFc5oAQCgAWNmetbASEN0UWhgD_HRGNLt95QG_3yWbw4E_7tPd0yY-pjx7OYHqtOrkx8tfd2nGt8f9A4-T3Yd1s398OmUvh-MUljB3fUT2Aa4Jup1cXO532-y0e8iS_e-PKXCuVV6cz5-UANHNJVfCwNWBRMAf99nLJjucAAXJrHSHaAaEgVuDtOPQgbHCqoIXwlyDzJnRa0Xd8Sa3RAMAQEH66Xl_biQeLBHZ5qpDZKv1a3tXvL9XrvvuOviGk4dZ5zt66OtNTdjU0poZtFZ0tZYldK7Bq6Fvoeq17t8cdelzfNyC6dT5LO1XaMxdKnxJHRrpMz_Fv3Az5hdWP-r9w0qfeXziun_j58Jx_ANVE5D_496ouvnCn3g_4T-BzXNhpLMhEqbPfH_gg6zpCp6fDj8RQqvuL1FL3s0jIkSEfMsUIDftWWgSuChcCaObou-MhUQMcG32m-PHUS3KNS0jGomFXK9Y5GOfkogsmrXExYpQsaKsjGRUiqrwQkxFRJgMvLAQC7UmmFA3QFcMh9hfRqzyKK6wT6LQI1GEPCxbofTSAbHsh3qhjBnlmjHG_IUWudRmmv6EOOgRSRBJRK6mPDeIENv32iAa_xso99JPF8N6MuZjbZCHtTLW3GSssnr6r_zH0U-hEkobsD2Ucu5uMLZ07UvjS9kW46DXjbVnp4vIFpFtrWwz5suiby9sXxE_D_2fsrCIbKd9GUS209b-CQAA___GA_rI">