<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/111345>111345</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang][ItaniumMangle] `clang` should validate that the LLVM demangler can handle all the mangled names it produces.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc++abi,
clang:driver,
clang:frontend,
clang:codegen,
ABI
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
VitaNuo
</td>
</tr>
</table>
<pre>
`clang` sometimes produces C++ mangled names that do not demangle with LLVM demangler. It seems reasonable for `clang` to confirm that all mangled names demangle, i.e., come back without a `_Z` prefix (or ? prefix in MS mode) from `llvm::demangle` API.
This could be implemented in an `asserts` build. This should also be done behind a flag to prevent unintended breakages.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxkk0-PozgQxT-NuZQaOQZCcuCQdBQpUvdqpV31YS-rwi7A0_4T2SYz8-1Hhu7MdPcFoyrXe-b5B8aoR0fUsebImlOBc5p86F50wr9mX_Re_ezYlkuDbmRbDtFbStpShGvwapYU4ZGJIxNHsOhGQwoc5naaMIHy4HwCRWsPvus0wdPTy_O9FEq4JIhENkIgjN5hbwgGH-BP2-RBejfoYFdhNOaT37sgE4-gSyrzKr0l6FG-LsZ-ToBZ9f__suQ10KB_ABO77FWd3wvawfM_YL0iJvYwBG_zjDE3y6oDqw53oy2Hw9-XkvET44f1-e-kI0g_GwU9gbZXQ5ZcIpVV0WUhjJFCinm6n7VRJSxDcVqm0ESfR5V3BD1N2ilAGAyOOYJroBu5BLPTLpFTpKAPhK84UiwL1VVqX-2xoG7Tip3YtXVdF1O3k3uqVdWTUu1ukPsBObZNxfNuqWhX6E5wUW84b3nb8LouN2275cO25qLdber9wGpOFrUpcwqlD2OhY5yp22w2Vd0UBnsycSFICKN7uQKBvWZCMPHIhFgvsjqooG8UvpSH4JcP-tKQXtFI7l4_HC_5vTkVocuHeejnMbKaGx1T_H28pJNZkF51mhNrjpeETs_2eb285vSBr7f4b2i0wkQrZGmiT7CCRAcTOmVoQTDv-IihTvcfoyzmYLoppWvM5IgzE-dRp2nuS-ktE-eFqXV5uAb_jWRi4rxEG5k4v6V768SvAAAA__8XXC3o">