https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84501
Bug ID: 84501 Summary: diagnostic says "array of chars" for arrays of wchar_t, char16_t and char32_t Product: gcc Version: 8.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- int main() { wchar_t w[3] = L"abc"; char16_t u16[3] = u"abc"; char32_t u32[3] = U"abc"; } a.c: In function ‘int main()’: a.c:2:18: error: initializer-string for array of chars is too long [-fpermissive] wchar_t w[3] = L"abc"; ^~~~~~ a.c:3:21: error: initializer-string for array of chars is too long [-fpermissive] char16_t u16[3] = u"abc"; ^~~~~~ a.c:4:21: error: initializer-string for array of chars is too long [-fpermissive] char32_t u32[3] = U"abc"; ^~~~~~ Saying "chars" implies narrow characters. The standard uses "character array" for the general case.