This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Basic frontend question about layout
On Tue, 2009-06-23 at 20:52 -0700, Andrew Pinski wrote:
> On Tue, Jun 23, 2009 at 8:48 PM, Jerry Quinn<jlquinn@optonline.net> wrote:
> > Hi, folks,
> >
> > I'm having trouble seeing how layout is specified at the GENERIC level
> > for RECORD_TYPEs. The docs and comments in tree.def say that you cannot
> > rely on the order of fields of the type. In stor-layout.c,
> > layout_types() seems to do the obvious thing, taking the fields in
> > order, but the docs make it sound like there is no way to be sure what
> > you'll get.
> > Could someone please clear up my confusion?
>
> The confusion here is that layout_types is separate from the rest of
> the middle-end and the front-end could do the layout themselves and
> the front-end calls layout_type if it does not do the layout itself.
As I look at the code, it seems like a front end doesn't actually need
to call layout_type at all. Is that correct? If so, is the layout
C-compatible, assuming the field types being used are individually
compatible?
I'm gleaning this from a mix of code, comments, and gccint texinfo docs.
Would it make sense to update them to indicate that layout is in order
as long as the rest of the language-specific front end doesn't choose to
lay things out differently?
Thanks,
Jerry