------- Comment #7 from redi at gcc dot gnu dot org 2009-11-23 14:53 ------- (In reply to comment #6) > > OK, can't argue with not breaking existing headers I suppose. But this is to > me clearly a bogus usage. What are the semantics of using internal zero sized > arrays in a struct? They have the same offset as the following field and > impose alignment restrictions on it. Do they have the same nominal > requirements as unions for usage (can't write one, read the other?)? Or is > the > idea that if they are 0 sized and internal they are not to be used for any > purpose whatsoever, and they are only not warnable because of existing usage > in > glibc headers?
All good questions! It should be possible to make the C++ front end stricter about these so that outside of system headers they are an error, downgradeable to a warning with -fpermissive. I might try that. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42121