> > > > I am not sure if TYPE_MAIN_VARIANT is really needed here. What I know is > > that > > complete types may have incomplete variants. > > How can that be? TYPE_FIELDS is shared across variants and all variants > should be layed out.
Because TYPE_FILEDS are not always shared across variants. For example gfc_nonrestricted_type builds variants of types that have their own TYPE_FIELDS lists whose types are variants of the original TYPE_FIELDs. C++ FE used to do the same for member pointers, but I noticed that last stage1 with early version of type verifier and as far as I can remember Jason changed that. Honza