diff options
author | Mike Stump <mrs@gcc.gnu.org> | 1997-05-02 01:42:58 +0000 |
---|---|---|
committer | Mike Stump <mrs@gcc.gnu.org> | 1997-05-02 01:42:58 +0000 |
commit | eb4484594fdd910acdc06149f9c112ab728977b4 (patch) | |
tree | d15683fdd007eaa7a6e42cb25ad13d7a80886862 /gcc/cp/except.c | |
parent | ebcf525f58c8bf78b8ee10c7cd4aed0ee26ff604 (diff) | |
download | gcc-eb4484594fdd910acdc06149f9c112ab728977b4.zip gcc-eb4484594fdd910acdc06149f9c112ab728977b4.tar.gz gcc-eb4484594fdd910acdc06149f9c112ab728977b4.tar.bz2 |
91th Cygnus<->FSF quick merge
From-SVN: r14007
Diffstat (limited to 'gcc/cp/except.c')
-rw-r--r-- | gcc/cp/except.c | 73 |
1 files changed, 17 insertions, 56 deletions
diff --git a/gcc/cp/except.c b/gcc/cp/except.c index efe9762..45994ce 100644 --- a/gcc/cp/except.c +++ b/gcc/cp/except.c @@ -917,13 +917,11 @@ void expand_exception_blocks () { rtx funcend; - rtx insn, insns; - rtx eh_spec_insns = NULL_RTX; + rtx insns; start_sequence (); funcend = gen_label_rtx (); - emit_jump (funcend); start_sequence (); @@ -935,32 +933,26 @@ expand_exception_blocks () insns = get_insns (); end_sequence (); - - /* Do this after we expand leftover cleanups, so that the expand_eh_region_end - that expand_end_eh_spec does will match the right expand_eh_region_start, - and make sure it comes out before the terminate protected region. */ + +#if 1 + /* Do this after we expand leftover cleanups, so that the + expand_eh_region_end that expand_end_eh_spec does will match the + right expand_eh_region_start, and make sure it comes out before + the terminate protected region. */ if (TYPE_RAISES_EXCEPTIONS (TREE_TYPE (current_function_decl))) { -#if 1 - { - rtx insns; - /* New... */ - start_sequence (); - expand_start_eh_spec (); - eh_spec_insns = get_insns (); - end_sequence (); - } -#endif - - expand_end_eh_spec (TYPE_RAISES_EXCEPTIONS (TREE_TYPE (current_function_decl))); - push_to_sequence (insns); + expand_end_eh_spec (TYPE_RAISES_EXCEPTIONS (TREE_TYPE (current_function_decl))); + push_to_sequence (insns); - /* Now expand any new ones. */ - expand_leftover_cleanups (); + /* Now expand any new ones. */ + expand_leftover_cleanups (); - insns = get_insns (); - end_sequence (); + insns = get_insns (); + end_sequence (); } +#endif + + emit_jump (funcend); if (insns) { @@ -983,22 +975,6 @@ expand_exception_blocks () expand_leftover_cleanups (); } - { - /* Mark the end of the stack unwinder. */ - rtx unwind_insns; - start_sequence (); -#if 0 - end_eh_unwinder (); -#endif - unwind_insns = get_insns (); - end_sequence (); - if (unwind_insns) - { - insns = unwind_insns; - emit_insns (insns); - } - } - emit_label (funcend); /* Only if we had previous insns do we want to emit the jump around @@ -1007,22 +983,7 @@ expand_exception_blocks () insns = get_insns (); end_sequence (); -#if 1 - if (eh_spec_insns) - emit_insns_after (eh_spec_insns, get_insns ()); -#else - if (eh_spec_insns) - store_after_parms (eh_spec_insns); -#endif - - insn = get_last_insn (); - while (GET_CODE (insn) == NOTE - || (GET_CODE (insn) == INSN - && (GET_CODE (PATTERN (insn)) == USE - || GET_CODE (PATTERN (insn)) == CLOBBER))) - insn = PREV_INSN (insn); - - emit_insns_after (insns, insn); + emit_insns (insns); } tree |