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



Steven Bosscher <steven at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

                 CC|                            |steven at gcc dot gnu.org

          Component|middle-end                  |target



--- Comment #3 from Steven Bosscher <steven at gcc dot gnu.org> 2012-12-04 
23:24:41 UTC ---

Out of expand GCC produces:



(insn 6 5 7 2 (set (reg:DI 61)

        (reg:DI 0 ax)) t.c:8 -1

     (expr_list:REG_EQUAL (symbol_ref:SI ("__morestack_initial_sp") \

   [flags 0x10]  <var_decl 0x7ffff6263720 __morestack_initial_sp>)

        (nil)))

(insn 7 6 8 2 (parallel [

            (set (reg:DI 62)

                (plus:DI (reg:DI 61)

                    (const_int 4 [0x4])))

            (clobber (reg:CC 17 flags))

        ]) t.c:8 -1

     (nil))



In alias.c, the compiler tries to simplify r62=r61+4 to

r62=symbol_ref:SI ("__morestack_initial_sp")+4 but plus_constant

doesn't accept symbol_ref:SI ("__morestack_initial_sp") because it

is is SImode but should be DImode.



Back-end bug, I'm guessing something Pmode related.

Reply via email to