Hi, in fld_type_variant I lost code copying alignment. This patch fixes it and also checks that newly constructed variant is indeed compatible.
Bootstrapped/regtested x86_64-linux, comitted as obvious. Honza * tree.c (fld_type_variant): Also copy alignment; be sure that new variant is equal. Index: tree.c =================================================================== --- tree.c (revision 265841) +++ tree.c (working copy) @@ -5119,6 +5119,8 @@ fld_type_variant (tree first, tree t, st TYPE_NAME (v) = TYPE_NAME (t); TYPE_ATTRIBUTES (v) = TYPE_ATTRIBUTES (t); TYPE_CANONICAL (v) = TYPE_CANONICAL (t); + SET_TYPE_ALIGN (v, TYPE_ALIGN (t)); + gcc_checking_assert (fld_type_variant_equal_p (t,v)); add_tree_to_fld_list (v, fld); return v; }