aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorMartin v. Löwis <loewis@informatik.hu-berlin.de>2000-03-19 18:25:27 +0000
committerMartin v. Löwis <loewis@gcc.gnu.org>2000-03-19 18:25:27 +0000
commitc14f7160a1403c21443013a8af8a29e1ddbfe488 (patch)
tree741fb4699c20e2b971024d7d050b856266030a84 /gcc/function.c
parentd88f311b6384b7fc22fe799225097782cb502b9d (diff)
downloadgcc-c14f7160a1403c21443013a8af8a29e1ddbfe488.zip
gcc-c14f7160a1403c21443013a8af8a29e1ddbfe488.tar.gz
gcc-c14f7160a1403c21443013a8af8a29e1ddbfe488.tar.bz2
emit-rtl.c (push_to_full_sequence, [...]): New functions.
* emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions. * except.c (emit_cleanup_handler): Use them. (expand_end_all_catch): Likewise. * function.c (fixup_var_refs): Likewise. (expand_function_end): Clear catch_clauses_last. * rtl.h (push_to_full_sequence, end_full_sequence): Declare. * except.h (struct eh_status): New field x_catch_clauses_last. (catch_clauses_last): New define. * cp/except.c (expand_exception_blocks): Clear catch_clauses_last. * java/except.c (emit_handlers): Clear catch_clauses_last. From-SVN: r32643
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/function.c b/gcc/function.c
index e994558..aed4c60 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -1548,10 +1548,10 @@ fixup_var_refs (var, promoted_mode, unsignedp, ht)
}
/* Scan the catch clauses for exception handling too. */
- push_to_sequence (catch_clauses);
+ push_to_full_sequence (catch_clauses, catch_clauses_last);
fixup_var_refs_insns (var, promoted_mode, unsignedp, catch_clauses,
0, 0);
- end_sequence ();
+ end_full_sequence (&catch_clauses, &catch_clauses_last);
/* Scan sequences saved in CALL_PLACEHOLDERS too. */
for (insn = first_insn; insn; insn = NEXT_INSN (insn))
@@ -6549,7 +6549,7 @@ expand_function_end (filename, line, end_bindings)
/* If there are any catch_clauses remaining, output them now. */
emit_insns (catch_clauses);
- catch_clauses = NULL_RTX;
+ catch_clauses = catch_clauses_last = NULL_RTX;
/* If the above emitted any code, may sure we jump around it. */
if (last != get_last_insn ())
{