except.c (finish_eh_generation): Commit edge insertions only after the EH edges have...
authorEric Botcazou <ebotcazou@adacore.com>
Thu, 21 Jun 2018 17:02:13 +0000 (17:02 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Thu, 21 Jun 2018 17:02:13 +0000 (17:02 +0000)
* 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

gcc/ChangeLog
gcc/except.c

index 0550afb59422ec77623cb95c2200ba3ae11cab76..d8e1361f8ad7068fcb2b708074f65ba158264dfe 100644 (file)
@@ -1,3 +1,8 @@
+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
index ba42bf68b43e9f4411c927e8e6fc718c5a5dc962..84666d9041ea7a0c055dd2371ba7119da2af98e5 100644 (file)
@@ -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 ();
 }
 \f
 /* This section handles removing dead code for flow.  */