This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/42121] g++ should warn or error on internal 0 size array in struct
- From: "redi at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 20 Nov 2009 18:49:41 -0000
- Subject: [Bug c++/42121] g++ should warn or error on internal 0 size array in struct
- References: <bug-42121-18470@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from redi at gcc dot gnu dot org 2009-11-20 18:49 -------
(In reply to comment #2)
> In standard C, a size 0 array is forbidden, at least in C99 doc I have handy,
Yes, but it's a long-standing GNU extension:
http://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Zero-Length.html#Zero-Length
The C++ front end says:
/* As an extension we allow zero-sized arrays. We always allow
them in system headers because glibc uses them. */
Maybe the C++ front-end could be made stricter, so that it accepts char b[0]
(like the C front end) but not char b[] (which is a C99 flexible array member,
and must be the last member)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42121