https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100698

            Bug ID: 100698
           Summary: Error when initializing a struct member of type
                    char[N] with short string literal
           Product: gcc
           Version: 11.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: iDingDong at outlook dot com
  Target Milestone: ---

//---
struct [[maybe_unused]] A {
    char a[5];
};

int main() {
    A x = { .a = "Hey!" }; // OK
    A y = { .a = { 'H', 'i', '\0' } }; // OK
    A z = { .a = "Hi" }; // error: C99 designator 'a' outside aggregate
initializer
    return 0;
}
//---

Compiled with

> g++ -std=c++20 test.cpp

This error is only triggered when attempting to initialize an array of char
with a string literal of smaller size than the array was defined.

Reply via email to