String constant concatenation in c-lex.c
Joseph S. Myers
jsm28@cam.ac.uk
Thu Jun 21 02:47:00 GMT 2001
On Wed, 20 Jun 2001, Zack Weinberg wrote:
> As Joseph suggested last week: this patch does C's string constant
> concatenation inside lex_string, instead of separately in
I didn't suggest this, it's been in projects/cpplib.html for some time.
> Also, a long-standing bug with wide string conversion is fixed. Consider
>
> "abc*def" L"ghijkl"
>
> where the splat is actually a multi-byte character whose wchar_t form
> doesn't fit in a single byte. The C standard says that this is to
> wind up as a wide string, and that the multibyte representations are
> to be concatenated, then the whole megillah converted to wide
> characters at once.
The C standard is somewhat confused on exactly how multibyte-to-wide
conversions of string literals are supposed to work. See e.g. WG14
reflector sequence numbers 8797, 8802, 8811, 8821, 8826. To confuse
things further, C++ differs from C (extended characters in the source get
converted to UCNs in C++).
--
Joseph S. Myers
jsm28@cam.ac.uk
More information about the Gcc-patches
mailing list