diff options
author | davidxl <davidxl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-09 22:49:12 +0000 |
---|---|---|
committer | davidxl <davidxl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-09 22:49:12 +0000 |
commit | de2ca00d29242ceca6db56e3793a9b6e6182c46c (patch) | |
tree | 90db0a19c995b30c6d8bb39190ca384e0d63716e /gcc/except.c | |
parent | 6369795812d5fafdef165290c2777acd3e42633d (diff) | |
download | gcc-de2ca00d29242ceca6db56e3793a9b6e6182c46c.tar.gz |
Revert r174848,174849
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174864 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/except.c')
-rw-r--r-- | gcc/except.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/gcc/except.c b/gcc/except.c index a8bb7a94d92..1e5c291055f 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; |