https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87148
Bug ID: 87148 Summary: backward compatibility issue to take char [] as incomplete type Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: will.xzm at gmail dot com Target Milestone: --- struct Tst{ char t[]; }; new Tst(); It will fail when compiled by gcc (7.3 or 8.2) error: value-initialization of incomplete type [1mchar [] I have to correct to "char t[0]"; but with gcc 4.8.2 , it works fine. Is it by design ?? Is there alternative way to make last version to compile successfully without modify code ??