Steve McIntyre <[EMAIL PROTECTED]> wrote:

> >> And just in case you are wondering, I ran all those previous tests again
> >> with -std=c99 with exactly the same results.
> >
> >Thank you for the test!
> >
> >So GCC is in clear violation with the C-99 standard.
>
> Which part of the C-99 standard, exactly? Section 6.7.2.1, paragraph
> #12,#14,#15 (see draft N869 from
> http://cbfalconer.home.att.net/download/n869_txt.bz2) says the
> following:
>
> ---------------------------------------
...
>   [#15] As a special case, the last  element  of  a  structure
>   with more than one named member may have an incomplete array
>   type.  This is called a flexible array member, and the  size
>   of  the  structure  shall be equal to the offset of the last
>   element of an otherwise identical  structure  that  replaces
>   the  flexible  array  member  with  an  array of unspecified
> ---------------------------------------

> i.e. there may be no padding before the first member of a structure,
> but there may be elsewhere within the structure including right at the
> end. As a special case, if you specify the last member of your
> structure as a "flexible array member" then there will be no padding
> _at the end of the structure_. It does not affect padding _within_ the
> structure.
>
> I'm sorry, I don't see anything here to support your assertion that
> gcc is behaving incorrectly.

Could you please run a final test?

I would like to see the offset of "dummy" in the structure (e.g. via
the offsetof() macro from <stddef.h>).

I am sure that GCC will _not_ introduce padding _before_ "dummy" and 
the C-99 stanad requires that sizeof (struct test) == offsetof(struct test, 
dummy);

Jörg

-- 
 EMail:[EMAIL PROTECTED] (home) Jörg Schilling D-13353 Berlin
       [EMAIL PROTECTED]                (uni)  
       [EMAIL PROTECTED]     (work) Blog: http://schily.blogspot.com/
 URL:  http://cdrecord.berlios.de/old/private/ ftp://ftp.berlios.de/pub/schily

Reply via email to