------- Comment #2 from jakub at gcc dot gnu dot org  2009-10-02 21:04 -------
Perhaps better don't do something as non-sensical as this.

Anyway, we shouldn't ICE on it.

--- function.c.jj        2009-09-29 15:10:43.000000000 +0200
+++ function.c        2009-10-02 23:01:49.000000000 +0200
@@ -1598,7 +1598,10 @@ instantiate_virtual_regs_in_insn (rtx in
       if (!safe_insn_predicate (insn_code, i, x))
         {
           start_sequence ();
-          x = force_reg (insn_data[insn_code].operand[i].mode, x);
+          if (REG_P (x))
+            x = copy_to_reg (x);
+          else
+            x = force_reg (insn_data[insn_code].operand[i].mode, x);
           seq = get_insns ();
           end_sequence ();
           if (seq)

should fix this.


-- 


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

Reply via email to