[Bug bootstrap/43994] [4.6 Regression] Revision 159063 failed to bootstrap on Linux/ia64

jakub at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Wed May 5 18:01:00 GMT 2010



------- Comment #6 from jakub at gcc dot gnu dot org  2010-05-05 18:00 -------
Created an attachment (id=20566)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20566&action=view)
gcc46-pr43994.patch

I must say I don't understand why this happens, but in this case
DF_REF_REAL_REG is a (reg:DI 112 r32) while *DF_REF_REAL_LOC is
(reg/v:SI 112 r32 [orig:369 up ] [369])
(perhaps a subreg has been simplified or something).  Alex' code uses
DF_REF_REAL_REG to find the largest reg's mode (that's not wrong in this case
as DF_REAL_REG's mode is larger) but also that mode when deciding whether to
create a subreg or not.  So we end up with debug_insn containing var_location
for SImode D#2 set from DImode D#3.

The attached patch cures it, but is otherwise untested.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43994



More information about the Gcc-bugs mailing list