summaryrefslogtreecommitdiff
path: root/gcc/cfgbuild.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-25 20:00:00 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-25 20:00:00 +0000
commit54f7a9853bc0acf6a313e27df36ad8598f6e2fca (patch)
tree8328d527b50b846c05df0b06c0dc56a80978890e /gcc/cfgbuild.c
parentab9b8800aa18a76d9514ccaeada3727e6d4a8a9c (diff)
downloadgcc-54f7a9853bc0acf6a313e27df36ad8598f6e2fca.tar.gz
* basic-block.h (make_eh_edge, break_superblocks): Declare.
* cfgbuild.c (make_eh_edge): Make global. * cfglayout.c (break_superblocks): Likewise; fix memory leak. * except.c (build_post_landing_pads, connect_post_landing_pads, dw2_build_landing_pads, sjlj_emit_function_enter, sjlj_emit_function_exit, sjlj_emit_dispatch_table, sjlj_build_landing_pads): Update CFG. (emit_to_new_bb_before): New function. (finish_eh_generation): Do not rebuild the CFG. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78448 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgbuild.c')
-rw-r--r--gcc/cfgbuild.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/cfgbuild.c b/gcc/cfgbuild.c
index 5805e587ec8..00c53a46ce8 100644
--- a/gcc/cfgbuild.c
+++ b/gcc/cfgbuild.c
@@ -53,7 +53,6 @@ static void find_basic_blocks_1 (rtx);
static rtx find_label_refs (rtx, rtx);
static void make_edges (rtx, basic_block, basic_block, int);
static void make_label_edge (sbitmap *, basic_block, rtx, int);
-static void make_eh_edge (sbitmap *, basic_block, rtx);
static void find_bb_boundaries (basic_block);
static void compute_outgoing_frequencies (basic_block);
@@ -240,7 +239,7 @@ make_label_edge (sbitmap *edge_cache, basic_block src, rtx label, int flags)
/* Create the edges generated by INSN in REGION. */
-static void
+void
make_eh_edge (sbitmap *edge_cache, basic_block src, rtx insn)
{
int is_call = GET_CODE (insn) == CALL_INSN ? EDGE_ABNORMAL_CALL : 0;