<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/143473>143473</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[libcxxabi][llvm-cxxfilt] Demangler produces bad output for templated `operator<`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
jeremy-rifkin
</td>
</tr>
</table>
<pre>
llvm-cxxfilt and __cxa_demangle demangle `_ZltI1SEvT_S1_` as `void operator<<S>(S, S)`. Specifically, the `operator<<S>` part can be problematic for tooling attempting to parse these names since this should be tokenized as `operator` `<<` `S` `>`. While possible to disambiguate some cases, I think it would be better to demangle this specific case as `void operator< <S>(S, S)`.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0Uk1v2zAM_TXyhWggyx-JDz5sTQP0nAEDdgkombbVypYh0Vm6Xz8oSbthWE8WaTw-vseHMdphJmpF9VVU-wxXHn1oXyjQ9PYQbP9q50z77q117jw9mMult44B5w5OJ3PBU0cTzoMj-HiIWp5-OH7Oj0_nb6djfhK1BIypf_a2A79QQPZBFI-ieDyK4kmo3VGoRzgK1YhabuC4kLG9NejcW_rB43Xsf5C1hAUDg8EZNMESvHY0IVsDvQ_A3js7D4DMNC2cnuwTIlIaGglmnChCtLNJHRshjn51XRrG_pVm-4u6-_Yf9LVM5W2Le3H8aD5dFXwfrSNYfIxWuzQKOhtx0nZYkQminwgMRopJ3nNinl_BMvx8J9fETOEKfDf2tt7dmiv6E1vhE1-zri26pmgwozbflk2lyqqus7E1Oe76na5001R5Y4zURsqq2snSbLHeNpltlVSVrHMpC6nKeiMpr3WtdE473WOPopQ0oXWbFJOND0NmY1ypzcui3BaZQ00uvocs3MKk1yGKUjobOf7BsWV3jaOz2lwuqK2o9qn8K3-i2sP-bktIR-9WQxE0duBXXla-HZ-mxSFT9292apmtwbUj8xJF8UWog1CHwfK46o3xk1CHRHb_PCzBv5BhoQ5XSVGow13VuVW_AwAA__8GUg1Q">