https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81234
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |rejects-valid Status|UNCONFIRMED |NEW Last reconfirmed| |2017-06-27 Known to work| |6.3.1 Summary|[regression] flexible array |[7/8 Regression] flexible |member not at end of |array member not at end of |‘struct |‘struct Ever confirmed|0 |1 Known to fail| |7.1.0, 8.0 --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- The code is valid in C, so presumably should be valid with G++ too. GCC 6 gives a warning with -pedantic, but prints the accompanying notes even without -pedantic! $ g++ foo.c -pedantic foo.c:4:27: warning: flexible array member ‘DataPacket::data’ not at end of ‘struct AckPacket’ [-Wpedantic] char data[]; ^ foo.c:9:21: note: next member ‘int AckPacket::a’ declared here int a,b,c; ^ foo.c:7:16: note: in the definition of ‘struct AckPacket’ struct AckPacket { ^~~~~~~~~ $ g++ foo.c foo.c:9:21: note: next member ‘int AckPacket::a’ declared here int a,b,c; ^ foo.c:7:16: note: in the definition of ‘struct AckPacket’ struct AckPacket { ^~~~~~~~~