On sh4-unknown-linux-gnu, r162270 | bernds | 2010-07-17 08:47:46 +0900 (Sat, 17 Jul 2010) | 26 lines
caused a build failure during compiling libjava: ../trunk/libjava/verify.cc: In member function 'void _Jv_BytecodeVerifier::merge_into(int, _Jv_BytecodeVerifier::state*)': ../trunk/libjava/verify.cc:1527:3: error: in basic block 200: ../trunk/libjava/verify.cc:1527:3: error: flow control insn inside a basic block (insn 1318 1315 1309 200 ../trunk/libjava/verify.cc:686 (set (reg:SI 1 r1 [orig:447 D.22193 ] [447]) (mem/s:SI (plus:SI (reg/v/f:SI 9 r9 [orig:452 from_state ] [452]) (const_int 24 [0x18])) [45 MEM[(const struct type &)from_state_22(D) + 16].pc+0 S4 A32])) 176 {movsi_ie} (expr_list:REG_EH_REGION (const_int 3 [0x3]) (nil))) ../trunk/libjava/verify.cc:1527:3: internal compiler error: in rtl_verify_flow_info_1, at cfgrtl.c:2030 P../trunk/libjava/verify.cc: In member function 'void _Jv_BytecodeVerifier::merge_into(int, _Jv_BytecodeVerifier::state*)': ../trunk/libjava/verify.cc:1527:3: error: in basic block 200: ../trunk/libjava/verify.cc:1527:3: error: flow control insn inside a basic block (insn 1318 1315 1309 200 ../trunk/libjava/verify.cc:686 (set (reg:SI 1 r1 [orig:447 D.22193 ] [447]) (mem/s:SI (plus:SI (reg/v/f:SI 9 r9 [orig:452 from_state ] [452]) (const_int 24 [0x18])) [45 MEM[(const struct type &)from_state_22(D) + 16].pc+0 S4 A32])) 176 {movsi_ie} (expr_list:REG_EH_REGION (const_int 3 [0x3]) (nil))) ../trunk/libjava/verify.cc:1527:3: internal compiler error: in rtl_verify_flow_info_1, at cfgrtl.c:2030 It seems that the patch below restores the build on SH, though I'm not sure if it's the right thing to do. diff -up ORIG/trunk/gcc/postreload.c trunk/gcc/postreload.c --- ORIG/trunk/gcc/postreload.c 2010-07-17 10:31:33.000000000 +0900 +++ trunk/gcc/postreload.c 2010-07-17 23:07:42.000000000 +0900 @@ -924,6 +924,9 @@ reload_combine_recognize_const_pattern ( if (must_move_add && use_ruid < last_jump_ruid) break; + if (find_reg_note (use_insn, REG_EH_REGION, NULL)) + break; + /* If the add clobbers another hard reg in parallel, don't move it past a real set of this hard reg. */ if (must_move_add && clobbered_regno >= 0 -- Summary: SH: libjava failed to build with 'flow control insn inside a basic block' Product: gcc Version: 4.6.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kkojima at gcc dot gnu dot org GCC target triplet: sh4-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44973