Messages in this thread | | | Date | Thu, 23 Jun 2011 18:55:33 +0100 | From | Al Viro <> | Subject | Re: [PATCH v2] xfs: Silence bounds checking compiler warning |
| |
On Thu, Jun 23, 2011 at 10:27:26AM -0700, Andi Kleen wrote: > Maarten Lankhorst <m.b.lankhorst@gmail.com> writes: > > > gcc with -Warray-bounds generates a false positive on this > > since xfs defines the struct with u8 name[1]; to be able to > > add a tag at the end. > > A better way would be to define it as name[0]. Then the compiler > would know it's a VLA. You may need to check noone relies on > the one byte though.
... and even better is to write in real C and have u8 name[]; in the end of your structure. That's the standard C99 for this kind of thing (see 6.7.2.1p2, p16). Zero-sized array is a gccism predating standard flexible array members and since the standard syntax is accepted by any gcc version that might be recent enough to build the kernel...
| |