aboutsummaryrefslogtreecommitdiff
path: root/gcc/except.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/except.c
parent54466dde7477a1ef8dacf54b89ab47ef59d83555 (diff)
downloadgcc-1f9081d15d2bfd28a5951d87f6e6f3fb254cdbdd.zip
gcc-1f9081d15d2bfd28a5951d87f6e6f3fb254cdbdd.tar.gz
gcc-1f9081d15d2bfd28a5951d87f6e6f3fb254cdbdd.tar.bz2
Revert r174848,174849
From-SVN: r174864
Diffstat (limited to 'gcc/except.c')
-rw-r--r--gcc/except.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/gcc/except.c b/gcc/except.c
index a8bb7a9..1e5c291 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -1440,17 +1440,14 @@ finish_eh_generation (void)
static bool
gate_handle_eh (void)
{
- return true;
+ /* Nothing to do if no regions created. */
+ return cfun->eh->region_tree != NULL;
}
/* Complete generation of exception handling code. */
static unsigned int
rest_of_handle_eh (void)
{
- /* Nothing to do if no regions created. */
- if (cfun->eh->region_tree == NULL)
- return 0;
-
finish_eh_generation ();
cleanup_cfg (CLEANUP_NO_INSN_DEL);
return 0;
@@ -2395,9 +2392,6 @@ convert_to_eh_region_ranges (void)
int min_labelno = 0, max_labelno = 0;
int saved_call_site_base = call_site_base;
- if (cfun->eh->region_tree == NULL)
- return 0;
-
crtl->eh.action_record_data = VEC_alloc (uchar, gc, 64);
ar_hash = htab_create (31, action_record_hash, action_record_eq, free);
@@ -2649,6 +2643,8 @@ static bool
gate_convert_to_eh_region_ranges (void)
{
/* Nothing to do for SJLJ exceptions or if no regions created. */
+ if (cfun->eh->region_tree == NULL)
+ return false;
if (targetm.except_unwind_info (&global_options) == UI_SJLJ)
return false;
return true;