[Bug middle-end/44852] [4.6 Regression]: miscompilation of newlib dtoa.c after mem-ref2 merge

rguenth at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Wed Jul 7 11:22:00 GMT 2010



------- Comment #2 from rguenth at gcc dot gnu dot org  2010-07-07 11:22 -------
The addition by 10 appears during postreload, where we substitute

(insn 24 35 65 4 t.i:9 (set (reg:QI 9 r9 [orig:44 prephitmp.3 ] [44])
        (const_int 58 [0x3a])) 45 {movqi} (expr_list:REG_EQUAL (const_int 58
[0x3a])
        (nil)))

for

(insn 24 35 65 4 t.i:9 (set (reg:QI 9 r9 [orig:44 prephitmp.3 ] [44])
        (plus:QI (reg:QI 9 r9 [orig:44 prephitmp.3 ] [44])
            (const_int 10 [0xa]))) 77 {*addqi3_non_v32} (expr_list:REG_EQUAL
(const_int 58 [0x3a])
        (nil)))

in

(insn 69 34 35 4 t.i:8 (set (reg:QI 9 r9)
        (const_int 48 [0x30])) 45 {movqi} (nil))

(insn 35 69 24 4 t.i:8 (set (mem:QI (plus:SI (reg/v/f:SI 10 r10 [orig:47 s ]
[47])
                (const_int -1 [0xffffffffffffffff])) [0 MEM[(char *)s_22 +
4294967295B]+0 S1 A8])
        (reg:QI 9 r9)) 45 {movqi} (nil))

(insn 24 35 65 4 t.i:9 (set (reg:QI 9 r9 [orig:44 prephitmp.3 ] [44])
        (const_int 58 [0x3a])) 45 {movqi} (expr_list:REG_EQUAL (const_int 58
[0x3a])
        (nil)))

which by itself doesn't look wrong.


-- 


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



More information about the Gcc-bugs mailing list