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.

Reply via email to