PR bootstrap/42347
* cfglayout.c (fixup_reorder_chain): Allow returnjump_p
to have no fallthru edge.
* gcc.c-torture/compile/pr42347.c: New test.
From-SVN: r159496
2010-05-17 Jakub Jelinek <jakub@redhat.com>
+ PR bootstrap/42347
+ * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
+ to have no fallthru edge.
+
PR middle-end/44102
* cfgcleanup.c (try_optimize_cfg): When removing trivially empty
bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
to prevent rtl_verify_flow_info from complaining. */
if (!e_fall)
{
- gcc_assert (!onlyjump_p (bb_end_insn));
+ gcc_assert (!onlyjump_p (bb_end_insn)
+ || returnjump_p (bb_end_insn));
bb->il.rtl->footer = emit_barrier_after (bb_end_insn);
continue;
}
2010-05-17 Jakub Jelinek <jakub@redhat.com>
+ PR bootstrap/42347
+ * gcc.c-torture/compile/pr42347.c: New test.
+
PR middle-end/44102
* g++.dg/ext/asmgoto1.C: New test.
--- /dev/null
+/* PR bootstrap/42347 */
+
+long
+foo (long x, long y)
+{
+ x = x & y;
+ switch (y)
+ {
+ case 63L: x >>= 0; break;
+ case 4032L: x >>= 6; break;
+ case 258048L: x >>= 12; break;
+ case 16515072L: x >>= 18; break;
+ default: __builtin_unreachable ();
+ }
+ return x;
+}