diff options
author | David Li <davidxl@google.com> | 2011-06-09 16:09:23 +0000 |
---|---|---|
committer | Xinliang David Li <davidxl@gcc.gnu.org> | 2011-06-09 16:09:23 +0000 |
commit | bdf67bcba3ccc715da89128200d06140943f33b4 (patch) | |
tree | 4df88ba9bea41f8d545aabd4a90d1d88d969a1e6 /gcc/tree-eh.c | |
parent | 0d1d0dc8aa325982f4a07d79bce1a5b21e71d4ab (diff) | |
download | gcc-bdf67bcba3ccc715da89128200d06140943f33b4.zip gcc-bdf67bcba3ccc715da89128200d06140943f33b4.tar.gz gcc-bdf67bcba3ccc715da89128200d06140943f33b4.tar.bz2 |
Gator cleanup
From-SVN: r174848
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r-- | gcc/tree-eh.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index e87c32e..7d27e0c 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -3234,6 +3234,9 @@ 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) @@ -3254,7 +3257,7 @@ execute_lower_eh_dispatch (void) static bool gate_lower_eh_dispatch (void) { - return cfun->eh->region_tree != NULL; + return true; } struct gimple_opt_pass pass_lower_eh_dispatch = @@ -3983,8 +3986,12 @@ execute_cleanup_eh_1 (void) static unsigned int execute_cleanup_eh (void) { - int ret = execute_cleanup_eh_1 (); + int ret; + 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. */ @@ -3998,7 +4005,7 @@ execute_cleanup_eh (void) static bool gate_cleanup_eh (void) { - return cfun->eh != NULL && cfun->eh->region_tree != NULL; + return true; } struct gimple_opt_pass pass_cleanup_eh = { |