aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2018-06-21 17:02:13 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2018-06-21 17:02:13 +0000
commit56b97603ec286907d09f0c38322931c04f4b78e5 (patch)
treee00a513589e7faabb86c571c71a736bfc745cd48 /gcc
parent575b192558435f0128e6f71afb95d002cdef835e (diff)
downloadgcc-56b97603ec286907d09f0c38322931c04f4b78e5.zip
gcc-56b97603ec286907d09f0c38322931c04f4b78e5.tar.gz
gcc-56b97603ec286907d09f0c38322931c04f4b78e5.tar.bz2
except.c (finish_eh_generation): Commit edge insertions only after the EH edges have been redirected from...
* except.c (finish_eh_generation): Commit edge insertions only after the EH edges have been redirected from post-landing to landing pads. From-SVN: r261855
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/except.c11
2 files changed, 11 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0550afb..d8e1361 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2018-06-21 Eric Botcazou <ebotcazou@adacore.com>
+ * except.c (finish_eh_generation): Commit edge insertions only after
+ the EH edges have been redirected from post-landing to landing pads.
+
+2018-06-21 Eric Botcazou <ebotcazou@adacore.com>
+
* tree-nested.c (get_frame_type): Use create_tmp_var_raw instead of
create_tmp_var_for to create the FRAME decl.
(finalize_nesting_tree_1): Do not unchain the FRAME decl.
diff --git a/gcc/except.c b/gcc/except.c
index ba42bf6..84666d9 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -1510,12 +1510,8 @@ finish_eh_generation (void)
sjlj_build_landing_pads ();
else
dw2_build_landing_pads ();
- break_superblocks ();
- if (targetm_common.except_unwind_info (&global_options) == UI_SJLJ
- /* Kludge for Alpha (see alpha_gp_save_rtx). */
- || single_succ_edge (ENTRY_BLOCK_PTR_FOR_FN (cfun))->insns.r)
- commit_edge_insertions ();
+ break_superblocks ();
/* Redirect all EH edges from the post_landing_pad to the landing pad. */
FOR_EACH_BB_FN (bb, cfun)
@@ -1546,6 +1542,11 @@ finish_eh_generation (void)
: EDGE_ABNORMAL);
}
}
+
+ if (targetm_common.except_unwind_info (&global_options) == UI_SJLJ
+ /* Kludge for Alpha (see alpha_gp_save_rtx). */
+ || single_succ_edge (ENTRY_BLOCK_PTR_FOR_FN (cfun))->insns.r)
+ commit_edge_insertions ();
}
/* This section handles removing dead code for flow. */