<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/86900>86900</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang++ does not comply with C++ standard normalization rules
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
fmayer
</td>
</tr>
</table>
<pre>
https://timsong-cpp.github.io/cppwp/lex.name#1: The program is ill-formed if an identifier does not conform to Normalization Form C as specified in the Unicode Standard.
clang++ accepts without warning a program that uses a non-canonical umlaut
```
int ü() {
return 1;
}
int main() {
return ü();
}
```
hex dump of the program
```
00000000: 696e 7420 c3bc 2829 207b 0a20 2072 6574 int ..() {. ret
00000010: 7572 6e20 313b 0a7d 0a0a 696e 7420 6d61 urn 1;.}..int ma
00000020: 696e 2829 207b 0a20 2072 6574 7572 6e20 in() {. return
00000030: 75cc 8828 293b 0a7d 0a u..();.}.
```
This particular program confusingly fails with
```
test.cpp:6:10: error: use of undeclared identifier 'ü'
return ü();
^
1 error generated.
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVMuyozYQ_Rp502VKCPNasLB942U2mXxAW2pAKSFReszMzdenMFybmWRuhXJhIamPzuluHQxBD5aoY-WFlW8HTHF0vusnfCd_uDv13o0xzoEVZyZuTNyinoKzw1HOczboOKZ7ph0TNznP32Ymboa-ZxYnYqLIWXGGLyPB7N3gcQIdQBtz7J2fSIHuAS1oRTbqXpMH5SiAdRGks8seiA5-d35Co__GqJ2F2zJ7BQwQZpJLlAJtIY4Ef1otnSL4I6JV6FXG-Bvj5_UtDdqBiQsTF0ApaY4Bvuk4uhThG3qr7QD4pBlHjJACBUCwzh4lWme1RANpMpjiHplVfPs9PrWNwK4Fu1yZaJhogdWXdQXAU0zeQs6KbYrVb3uoJXZCbX8Zmdj1yppmXf8PlB-prO-RvoNK0wyuf6Rp0_iJBL49S_GqtiKoT4KDLO4SRCNaELy-A0fBl5GAqqxPAAv3LHsxzx6k94D5A7AulxASHIq8WGBqBRw57k6qVJUDfGQqY_Vblq2p2cOJF79fsnodBvusZs-E7gGLjZ-U0DSiAdG--MG_n_Sh9oPjJzX4MuoAM_qoZTLon322tHkK2g7mHXrUZu1J-KQ2kULM5Dyz4lyx4rzmlLx3fhmkQEuZk1UkDfrlbrwuFxP1s3_q_9VYT62s_G2dydezYCBLHiOpn1UfVFeotmjxQF1e53nZNGV1OoxdLgrBc6VqrrDi97IvWynavJe1rCQW5UF3gosTL0TD87zip-zUo6Q-ryviZUVVzk6cJtQmM-brlDk_HHQIibqmajk_GLyTCQ8TE2K77WLxM98t-4_3NAR24kaHGF4IUUdD3d4cdhY0zeZ9Lch1WwybtYD9wZR8MhQOyZufnHJzR-mmxRbN14-_4-zdXyQjE7eHhMDE7aHinwAAAP__KD6Skg">