summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>2012-07-16 11:50:29 +0000
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>2012-07-16 11:50:29 +0000
commit4ecbba1adfc4fb41e5bb026b86ec423a24b3f26d (patch)
tree742cde71cc97835563df083d97bdd0724e48c4b5
parent5a13cc452435adf63fdce8be2929f93fcdb11419 (diff)
downloadgcc-4ecbba1adfc4fb41e5bb026b86ec423a24b3f26d.tar.gz
* haifa-sched.c (init_before_recovery): Do not set EDGE_CAN_FALLTHRU.
* cfgrtl.c (force_nonfallthru_and_redirect): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189523 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/cfgrtl.c4
-rw-r--r--gcc/haifa-sched.c3
3 files changed, 14 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 985bbdc5b9a..6c6ecff72cd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,16 @@
2012-07-16 Steven Bosscher <steven@gcc.gnu.org>
+ * 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 595975194dd..34e8bd45b81 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 dcfac6aa336..9cd0070998a 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));