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/except.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/except.c')
-rw-r--r-- | gcc/except.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/except.c b/gcc/except.c index 44507f8..3146778 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -1865,10 +1865,9 @@ emit_cleanup_handler (entry) end_sequence (); /* And add it to the CATCH_CLAUSES. */ - push_to_sequence (catch_clauses); + push_to_full_sequence (catch_clauses, catch_clauses_last); emit_insns (handler_insns); - catch_clauses = get_insns (); - end_sequence (); + end_full_sequence (&catch_clauses, &catch_clauses_last); /* Now we've left the handler. */ pop_ehqueue (); @@ -1990,10 +1989,9 @@ expand_end_all_catch () pop_label_entry (&outer_context_label_stack); /* Add the new sequence of catches to the main one for this function. */ - push_to_sequence (catch_clauses); + push_to_full_sequence (catch_clauses, catch_clauses_last); emit_insns (new_catch_clause); - catch_clauses = get_insns (); - end_sequence (); + end_full_sequence (&catch_clauses, &catch_clauses_last); /* Here we fall through into the continuation code. */ } |