On Tue, 2009-06-23 at 20:52 -0700, Andrew Pinski wrote: > On Tue, Jun 23, 2009 at 8:48 PM, Jerry Quinn<jlqu...@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