On May 13, 2013 9:59 AM, "Hans Wennborg" <[email protected]> wrote: > > Hi all, > > The attached patch fixes Clang's diagnostics concerning string > initialization. Where it would previously say: > > /tmp/a.c:3:9: error: array initializer must be an initializer list > wchar_t s[] = "Hi"; > ^ > /tmp/a.c:4:6: error: array initializer must be an initializer list > or string literal > char t[] = L"Hi"; > ^ > > It will now say > > /tmp/a.c:3:9: error: initializing wide char array with non-wide string literal > wchar_t s[] = "Hi";
Worth it/possible/convenient to go one step further and provide a fixit to insert the 'L' and appropriately recover? I suppose that's probably orthogonal to your patch, though. > ^ > /tmp/a.c:4:6: error: initializing char array with wide string literal > char t[] = L"Hi"; > ^ > > As a bonus, it also fixes the fact that Clang would previously reject > this valid C11 code: > > char16_t s[] = u"hi"; > char32_t t[] = U"hi";1 > > because it would only recognize the built-in types for char16_t and > char32_t, which do not exist in C. > > Please take a look. > > Thanks, > Hans > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
