------- Comment #12 from rguenth at gcc dot gnu dot org 2010-07-05 12:32 ------- field_type = build_pointer_type (field_type);
+ /* vtype fields can point to different types to the base type. */ + if (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.vtype) + TYPE_REF_CAN_ALIAS_ALL (field_type) = true; + this is wrong. You shouldn't change bits in (shared) types. Instead do field_type = build_pointer_type_for_mode (field_type, ptr_mode, c->ts.type == BT_DERIVED && c->ts.u.derived->attr.vtype); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44596