diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-16 12:48:18 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-16 12:48:18 +0000 |
commit | 5c15c916aff6315891f1893507081ab0f95ab007 (patch) | |
tree | c7687b57540a26d0d6218620d0cb0c8f6e8282d9 /gcc/except.h | |
parent | 2c014dab777d1b6dbea1b5ed3de478e100664d92 (diff) | |
download | gcc-5c15c916aff6315891f1893507081ab0f95ab007.tar.gz |
* except.c: Support for catching a list of types with a single handler
(struct eh_region): Change type and filter to lists for catch regions.
(mark_eh_region): Mark the filter list for GC also.
(expand_start_catch): Always build a list if argument not NULL and
register each type of the list through add_type_for_runtime.
(duplicate_eh_region_1): Change type into type_list for catch regions.
(assign_filter_values): Assign a filter to each type associated with a
catch region. Assign filter for NULL types in a unique entry in the
filter list.
(build_post_landing_pads): Emit compare and jump for each filter of
the list associated with a catch region.
(reachable_next_level): When the type thrown is known, stop the search
as soon as one type within a catch list matches. Also, a handler is
potentially reachable only if at least one of the types it catches
has not been previously caught.
(collect_one_action_chain): Retrieve the filter for a NULL type list
from the first filter list entry. For non NULL type lists, add an
action record for every filter assigned.
* except.h: Reflect changes in comment before expand_start_catch.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47087 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/except.h')
-rw-r--r-- | gcc/except.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/except.h b/gcc/except.h index 0a272688f92..9510e9218a2 100644 --- a/gcc/except.h +++ b/gcc/except.h @@ -61,7 +61,8 @@ extern void expand_eh_region_end_cleanup PARAMS ((tree)); extern void expand_start_all_catch PARAMS ((void)); /* Begin a catch clause. TYPE is an object to be matched by the - runtime, or null if this is a catch-all clause. */ + runtime, or a list of such objects, or null if this is a catch-all + clause. */ extern void expand_start_catch PARAMS ((tree)); /* End a catch clause. Control will resume after the try/catch block. */ |