Hi, I've committed the attached patch as a followup for the recent JUMP_TABLE_DATA change. Without this, SH fails to build during compiling libgcc.
Regards, kaz -- 2013-03-31 Kaz Kojima <kkoj...@gcc.gnu.org> * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead of next_real_insn. (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise. --- ORIG/trunk/gcc/config/sh/sh.md 2013-03-14 10:12:08.000000000 +0900 +++ trunk/gcc/config/sh/sh.md 2013-03-31 09:22:59.000000000 +0900 @@ -10725,7 +10725,7 @@ label: (clobber (match_scratch:SI 3 "=X,1"))] "TARGET_SH1" { - rtx diff_vec = PATTERN (next_real_insn (operands[2])); + rtx diff_vec = PATTERN (next_active_insn (operands[2])); gcc_assert (GET_CODE (diff_vec) == ADDR_DIFF_VEC); @@ -10759,7 +10759,7 @@ label: (clobber (match_operand:SI 4 "" "=X,1"))] "TARGET_SH2 && reload_completed && flag_pic" { - rtx diff_vec = PATTERN (next_real_insn (operands[2])); + rtx diff_vec = PATTERN (next_active_insn (operands[2])); gcc_assert (GET_CODE (diff_vec) == ADDR_DIFF_VEC); switch (GET_MODE (diff_vec)) @@ -10797,7 +10797,7 @@ label: UNSPEC_CASESI)))] "TARGET_SHMEDIA" { - rtx diff_vec = PATTERN (next_real_insn (operands[2])); + rtx diff_vec = PATTERN (next_active_insn (operands[2])); gcc_assert (GET_CODE (diff_vec) == ADDR_DIFF_VEC); @@ -10824,7 +10824,7 @@ label: (label_ref:DI (match_operand 3 "" ""))] UNSPEC_CASESI)))] "TARGET_SHMEDIA" { - rtx diff_vec = PATTERN (next_real_insn (operands[3])); + rtx diff_vec = PATTERN (next_active_insn (operands[3])); gcc_assert (GET_CODE (diff_vec) == ADDR_DIFF_VEC);