On Fri, Aug 03, 2012 at 03:29:10PM -0700, Linus Torvalds wrote: > On Fri, Aug 3, 2012 at 3:23 PM, Tejun Heo <t...@kernel.org> wrote: > > > > I actually meant an enclosing struct. When you're defining a struct > > member, simply putting the storage after a struct with var array > > should be good enough. If that doesn't work, quite a few things in > > the kernel will break. > > The unsigned member of a struct has to be the last one, so your struct > won't work.
I suppose you mean unsized. I remember this working. Maybe I'm confusing it with zero-sized array. Hmm... gcc doesn't complain about the following. --std=c99 seems happy too. #include <stdio.h> struct A { int i; long ar[]; }; struct B { struct A a; long ar_storage[32]; }; int main(void) { printf("sizeof(A)=%zd sizeof(B)=%zd\n", sizeof(struct A), sizeof(struct B)); return 0; } $ ./a.out sizeof(A)=8 sizeof(B)=264 -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/