diff options
author | Jeff Law <law@redhat.com> | 2004-12-02 08:56:29 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2004-12-02 08:56:29 -0700 |
commit | b28fb6a10c1206454e1aef9bcc980a88b5431d19 (patch) | |
tree | cd1758a1bb6a53cb5aa54e6fc5c3a656882eda66 | |
parent | 45fd5209ae1a942072b54b17e778055b41af5971 (diff) | |
download | gcc-b28fb6a10c1206454e1aef9bcc980a88b5431d19.zip gcc-b28fb6a10c1206454e1aef9bcc980a88b5431d19.tar.gz gcc-b28fb6a10c1206454e1aef9bcc980a88b5431d19.tar.bz2 |
* tree-eh.c: Revert yesterday's change.
From-SVN: r91643
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/tree-eh.c | 31 |
2 files changed, 8 insertions, 27 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cd60511..2c0241f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2004-12-02 Jeff Law <law@redhat.com> + + * tree-eh.c: Revert yesterday's change. + 2004-12-02 Andrew Pinski <pinskia@physics.uc.edu> * varasm.c (decode_reg_name): Revert change to check for zero diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index 08a8a0f..b7ed2ed 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -37,21 +37,6 @@ Boston, MA 02111-1307, USA. */ #include "langhooks.h" #include "ggc.h" -/* In some circumstances we have to save EH data around a nested - exception. The EXC_PTR_EXPR and FILTER_EXPR values are saved - into these _DECL nodes. - - We lazily create this pair of _DECL nodes once per function rather - than creating a new pair of _DECLs each time we need to save the - EXEC_PTR and FILTER. This can save us literally thousands of _DECL - nodes when we have many inline destructors with an embedded try block. - - This is safe as we know the lifetime of the values in these _DECL nodes. - Their lifetimes also ensure that globbing these uses into a single - pair of _DECL nodes requires no additional PHI_NODEs or SSA_NAMEs when - compared to having a pair of _DECL nodes per inline destructor with - an embedded try block. */ -static tree save_eptr, save_filt; /* Nonzero if we are using EH to handle cleanups. */ static int using_eh_for_cleanups_p = 0; @@ -822,13 +807,10 @@ honor_protect_cleanup_actions (struct leh_state *outer_state, we never fallthru from this copy of the finally block. */ if (finally_may_fallthru) { - /* If we have not created _DECLs for saving the EXC_PTR - and FILTER_EXPR, create them now. */ - if (!save_eptr) - { - save_eptr = create_tmp_var (ptr_type_node, "save_eptr"); - save_filt = create_tmp_var (integer_type_node, "save_filt"); - } + tree save_eptr, save_filt; + + save_eptr = create_tmp_var (ptr_type_node, "save_eptr"); + save_filt = create_tmp_var (integer_type_node, "save_filt"); i = tsi_start (finally); x = build (EXC_PTR_EXPR, ptr_type_node); @@ -1662,11 +1644,6 @@ lower_eh_constructs (void) htab_delete (finally_tree); collect_eh_region_array (); - - /* Wipe the DECLs we use for saving the EXC_PTR and FILTER_EXPR - to ensure we create new ones for the next function. */ - save_eptr = NULL; - save_filt = NULL; } struct tree_opt_pass pass_lower_eh = |