bin/175930: [headers] clang does not define __STDC_ISO_10646__, despite having Unicode in wchar_t

Ed Schouten ed at 80386.nl
Sat May 25 16:40:01 UTC 2013


The following reply was made to PR bin/175930; it has been noted by GNATS.

From: Ed Schouten <ed at 80386.nl>
To: bug-followup at FreeBSD.org, tim at stdrand.com
Cc:  
Subject: Re: bin/175930: [headers] clang does not define __STDC_ISO_10646__,
 despite having Unicode in wchar_t
Date: Sat, 25 May 2013 18:38:28 +0200

 Hi Tim,
 
 On FreeBSD, we should explicitly not define __STDC_ISO_10646__, as
 this condition does not hold. On FreeBSD, wchar_t contains the code
 point of the character as represented in the original character set.
 
 For example, if your LC_CTYPE is en_US.ISO8859-15 and you convert a
 Euro symbol to a wchar_t, it is stored internally as 0xa4 -- not
 0x20ac. There is no character conversion.
 
 Related to this, I am working on a change right now to let Clang at
 least define __STDC_MB_MIGHT_NEQ_WC__, __STDC_UTF_16__ and
 __STDC_UTF_32__.
 
 --
 Ed Schouten <ed at 80386.nl>


More information about the freebsd-toolchain mailing list