diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 985bbdc5b9ac..6c6ecff72cd8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,16 @@ 2012-07-16 Steven Bosscher + * haifa-sched.c (init_before_recovery): Do not set EDGE_CAN_FALLTHRU. + * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. + + * function.c (stack_protect_epilogue): Use expand_call to expand + targetm.stack_protect_fail. + * stmt.c (expand_expr_stmt): Remove now-unused function. + * tree.h (expand_expr_stmt): Remove prototype. + * doc/tm.texi.in (TARGET_STACK_PROTECT_FAIL): Document that this + hook must return a CALL_EXPR. + * doc/tm.texi: Regenerate. + * emit-rtl.c (emit_label_before): Do not allow the same label to be emitted twice. (emit_label_after): Likewise. diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 595975194ddf..34e8bd45b819 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -1365,8 +1365,8 @@ force_nonfallthru_and_redirect (edge e, basic_block target, rtx jump_label) one and create separate abnormal edge to original destination. This allows bb-reorder to make such edge non-fallthru. */ gcc_assert (e->dest == target); - abnormal_edge_flags = e->flags & ~(EDGE_FALLTHRU | EDGE_CAN_FALLTHRU); - e->flags &= EDGE_FALLTHRU | EDGE_CAN_FALLTHRU; + abnormal_edge_flags = e->flags & ~EDGE_FALLTHRU; + e->flags &= EDGE_FALLTHRU; } else { diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index dcfac6aa336e..9cd0070998a0 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -7194,8 +7194,7 @@ init_before_recovery (basic_block *before_recovery_ptr) redirect_edge_succ (e, single); make_single_succ_edge (single, empty, 0); - make_single_succ_edge (empty, EXIT_BLOCK_PTR, - EDGE_FALLTHRU | EDGE_CAN_FALLTHRU); + make_single_succ_edge (empty, EXIT_BLOCK_PTR, EDGE_FALLTHRU); label = block_label (empty); x = emit_jump_insn_after (gen_jump (label), BB_END (single));