------- 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

Reply via email to