There is this paragraph in ABOUT-GCC_NLS: By and large, only diagnostic messages have been internationalized. Some work remains in other areas; for example, GCC does not yet allow non-ASCII letters in identifiers. It seems like this hasn't been true since GCC 10. I can see in release notes: https://gcc.gnu.org/gcc-10/changes.html Extended characters in identifiers may now be specified directly in the input encoding (UTF-8, by default), in addition to the UCN syntax (\uNNNN or \UNNNNNNNN) that is already supported: static const int π = 3; int get_naïve_pi() { return π; } I think this either needs to be updated or removed completely?