BTW, nonfragile abi uses this style of struct definition for many of  
its meta-data.

- Fariborz

On Feb 10, 2009, at 5:25 PM, Mike Stump wrote:

> On Feb 10, 2009, at 2:47 PM, Daniel Dunbar wrote:
>> Agh! Do we really need to accept this!?
>>
>> What does f0 compute:
>> --
>> struct S0 {
>> int a;
>> int b[];
>> };
>
> Note, it _must_ be at the end of the struct.  And the semantics are it
> is of 0 size.  This is useful for malloc (sizeof (base) + n *sizeof
> (elt)) style allocations.  They allow nesting, not because all
> compositions work, but because some do, for example:
>
> struct SB {
>   int i;
> };
>
> struct SD {
>   int a;
>   int b[];
> };
>
> struct S1 {
>   struct SB x;
>   struct SD y;
> };
>
> Hard errors in the cases that don't make sense I think should be fine;
> any existing code, I bet doesn't make that sort of use, and we can
> file a bug report against gcc to slightly tighten up the cases we know
> are insane.
>
> They use array, and array always works, just so long as you only ever
> have 1 element.  I suspect they do this, because C doesn't have
> references.  :-)
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to