summaryrefslogtreecommitdiff
path: root/gcc/except.h
diff options
context:
space:
mode:
authorOlivier Hainque <hainque@act-europe.fr>2001-11-16 13:48:18 +0100
committerRichard Kenner <kenner@gcc.gnu.org>2001-11-16 07:48:18 -0500
commit6d41a92f7c22e76af40ee0012f02af8d0f52efe4 (patch)
treec7687b57540a26d0d6218620d0cb0c8f6e8282d9 /gcc/except.h
parenta8ca89dca83767049abf111dd2c659356a4c5880 (diff)
downloadgcc-6d41a92f7c22e76af40ee0012f02af8d0f52efe4.tar.gz
except.c: Support for catching a list of types with a single handler (struct eh_region):...
* 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. From-SVN: r47087
Diffstat (limited to 'gcc/except.h')
-rw-r--r--gcc/except.h3
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. */