diff options
author | Martin v. Löwis <loewis@informatik.hu-berlin.de> | 2000-03-19 18:25:27 +0000 |
---|---|---|
committer | Martin v. Löwis <loewis@gcc.gnu.org> | 2000-03-19 18:25:27 +0000 |
commit | c14f7160a1403c21443013a8af8a29e1ddbfe488 (patch) | |
tree | 741fb4699c20e2b971024d7d050b856266030a84 /gcc/function.c | |
parent | d88f311b6384b7fc22fe799225097782cb502b9d (diff) | |
download | gcc-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.c | 6 |
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 ()) { |