------- 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