[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