aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-eh.c
diff options
context:
space:
mode:
authorXinliang David Li <davidxl@gcc.gnu.org>2011-06-09 22:49:12 +0000
committerXinliang David Li <davidxl@gcc.gnu.org>2011-06-09 22:49:12 +0000
commit1f9081d15d2bfd28a5951d87f6e6f3fb254cdbdd (patch)
tree90db0a19c995b30c6d8bb39190ca384e0d63716e /gcc/tree-eh.c
parent54466dde7477a1ef8dacf54b89ab47ef59d83555 (diff)
downloadgcc-1f9081d15d2bfd28a5951d87f6e6f3fb254cdbdd.zip
gcc-1f9081d15d2bfd28a5951d87f6e6f3fb254cdbdd.tar.gz
gcc-1f9081d15d2bfd28a5951d87f6e6f3fb254cdbdd.tar.bz2
Revert r174848,174849
From-SVN: r174864
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r--gcc/tree-eh.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index 7d27e0c..e87c32e 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -3234,9 +3234,6 @@ execute_lower_eh_dispatch (void)
bool any_rewritten = false;
bool redirected = false;
- if (cfun->eh->region_tree == NULL)
- return 0;
-
assign_filter_values ();
FOR_EACH_BB (bb)
@@ -3257,7 +3254,7 @@ execute_lower_eh_dispatch (void)
static bool
gate_lower_eh_dispatch (void)
{
- return true;
+ return cfun->eh->region_tree != NULL;
}
struct gimple_opt_pass pass_lower_eh_dispatch =
@@ -3986,12 +3983,8 @@ execute_cleanup_eh_1 (void)
static unsigned int
execute_cleanup_eh (void)
{
- int ret;
+ int ret = execute_cleanup_eh_1 ();
- if (cfun->eh == NULL || cfun->eh->region_tree == NULL)
- return 0;
-
- ret = execute_cleanup_eh_1 ();
/* If the function no longer needs an EH personality routine
clear it. This exposes cross-language inlining opportunities
and avoids references to a never defined personality routine. */
@@ -4005,7 +3998,7 @@ execute_cleanup_eh (void)
static bool
gate_cleanup_eh (void)
{
- return true;
+ return cfun->eh != NULL && cfun->eh->region_tree != NULL;
}
struct gimple_opt_pass pass_cleanup_eh = {