------- Comment #3 from rguenth at gcc dot gnu dot org 2008-01-13 15:15 ------- This was caused by
+2007-12-19 Richard Sandiford <[EMAIL PROTECTED]> + + * rtl.def (SUBREG): Update comments. ... + (set_reg_attrs_for_decl_rtl): New function, split out from + set_decl_incoming_rtl. Set the offset of plain REGs to the + offset of the REG's mode from the decl's. Assert that all + subregs are lowparts and handle their inner registers in the + same way as plain REGs. + (set_decl_rtl, set_incoming_decl_rtl): Use reg_attrs_for_decl_rtl. ... and can be fixed by Index: emit-rtl.c =================================================================== --- emit-rtl.c (revision 131502) +++ emit-rtl.c (working copy) @@ -1006,7 +1006,7 @@ set_reg_attrs_for_decl_rtl (tree t, rtx if (REG_P (x)) REG_ATTRS (x) = get_reg_attrs (t, byte_lowpart_offset (GET_MODE (x), - TYPE_MODE (TREE_TYPE (t)))); + DECL_MODE (t))); if (GET_CODE (x) == CONCAT) { if (REG_P (XEXP (x, 0))) -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |rguenth at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-01-13 15:11:41 |2008-01-13 15:15:22 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34601