Where does C standard mention alignment requirements as written in gcc manual?

Nicholas Mc Guire der.herr@hofr.at
Tue Aug 18 16:25:00 GMT 2015


On Tue, 18 Aug 2015, john smith wrote:

>  On Tue, Aug 18, 2015 at 5:50 PM, Segher Boessenkool
> <segher@kernel.crashing.org> wrote:
> > On Tue, Aug 18, 2015 at 05:04:28PM +0200, john smith wrote:
> >> In gcc manual it says:
> >>
> >> "Note that the alignment of any given struct or union type is required
> >> by the ISO C standard to be at least a perfect multiple of the lowest
> >> common multiple of the alignments of all of the members of the struct
> >> or union in question."
> >>
> >> Where exactly is this requirement mentioned in C standard? I was
> >> looking for it in both C99 and C11 drafts and couldn't find it.
> >
> > C99 6.7.2.1/12 ?
> 
> It just says that "Each non-bit-field member of a structure or union
> object is aligned in an implementation-defined manner appropriate to
> its type.". It doesn't require an overall alignment of the structure
> to be "at least a perfect multiple of the lowest common multiple of
> the alignments of all of the members of the struct".
>
I guess 6.2.5 subclause 25 together with note 39 (interchangeablity) 
would result in "perfect multiple of the lowest common multiple" 

see also 6.2.5 subclause 20 on derived types.

thx!
hofrat



More information about the Gcc-help mailing list