<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63494>63494</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-cl does not truncate overflowing wchar_t literals
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Neumann-A
</td>
</tr>
</table>
<pre>
Simply said `clang-cl` cannot compile the following:
`static_assert(L'\U0001d538'==L"\U0001d538"[0]);`
while `cl` will do it.
`clang-cl` will emit an error for `L'\U0001d538'` (`error: character too large for enclosing character literal type`) while `cl` will truncate the result as documented https://learn.microsoft.com/en-us/cpp/cpp/string-and-character-literals-cpp?view=msvc-170#microsoft-specific.
clang-cl should match cl behavior here and downgrade the error to a truncation warning.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsk0-PwyYQxT8NvoxsEfDfgw-7jXJa9VL1vBrDxKbCYAGOtd--srNJs9VesCyGx4_3ZjBGMzqinlXvrDpnuKbJh_5PWmd0Ln_LBq-_-r_MvNgviGg0sJori27MlWU1B4XO-QTKz4uxBGkiuHpr_WbcyOQb42fGH2vNY8Jk1CfGSCEx0X4w0bDqj7855yddyXb_lWcmzx9MiJ8bglXvnFVnJjom31nNX6W3ab_8QNuhNmMtaA8mFfA_glf2o4xmkwAdUAg-wNWHXeY3rpoDEy2r-VHJ5BuoCQOqRAGS92AxjHQIkFPWR-PGlwprEgW0kL4W2uFFB79Bp7A6heluZKC42gQYQXu1zuQSaZhSWuLurLgwcbGEwRWzUcFHf02F8jMTF3L5Gpm4qGV5rjEF48Ycnc6fVPk3Vcz3Gnm5GdqYPM_xpvJTw5mQT-U8LqTM1aji1dCHmxAnv1oNMyY1gbIw0IQ34wNMFAjQadB-c2NAfX_a3e3kAR9PNt7BhsEZNxaQ6V7qTnaYUX-q26YuRcubbOo76krVnHh31UOJ-lqfhrYUDZeyGVTV6Mz0ggvJa1GKU8l5UyBXSEOrVFtz3VUNKznNaGxh7W0ufBgzE-NKfS3LrswsDmTjMQ1CONrg2Dy675yFfj-TD-sYWcmtiSn-p5JMstQ_DdGeIuyT8UzU3yhc74MB2x7BZ3p0RYRsDbb_Ge1o0rQO34nu13x_8iX4f0glJi4H3B70Af9vAAAA__8PCza-">