aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/except.c
diff options
context:
space:
mode:
authorMike Stump <mrs@gcc.gnu.org>1997-05-02 01:42:58 +0000
committerMike Stump <mrs@gcc.gnu.org>1997-05-02 01:42:58 +0000
commiteb4484594fdd910acdc06149f9c112ab728977b4 (patch)
treed15683fdd007eaa7a6e42cb25ad13d7a80886862 /gcc/cp/except.c
parentebcf525f58c8bf78b8ee10c7cd4aed0ee26ff604 (diff)
downloadgcc-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.c73
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