------- Comment #14 from steven at gcc dot gnu dot org 2006-06-11 09:55 ------- This hacks around this particular problem. Not a fix, you know, but it explains what is going wrong here.
Index: reload1.c =================================================================== --- reload1.c (revision 114548) +++ reload1.c (working copy) @@ -7755,7 +7755,11 @@ gen_reload (rtx out, rtx in, int opnum, } /* If IN is a simple operand, use gen_move_insn. */ else if (OBJECT_P (in) || GET_CODE (in) == SUBREG) - emit_insn (gen_move_insn (out, in)); + { + tem = emit_insn (gen_move_insn (out, in)); + if (GET_CODE (in) == LABEL_REF) + mark_jump_label (in, tem, 0); + } #ifdef HAVE_reload_load_address else if (HAVE_reload_load_address) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27531