diff options
author | dnovillo <dnovillo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-05-13 06:41:07 +0000 |
---|---|---|
committer | dnovillo <dnovillo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-05-13 06:41:07 +0000 |
commit | 4ee9c6840ad3fc92a9034343278a1e476ad6872a (patch) | |
tree | a2568888a519c077427b133de9ece5879a8484a5 /gcc/except.h | |
parent | ebb338380ab170c91e64d38038e6b5ce930d69a1 (diff) | |
download | gcc-4ee9c6840ad3fc92a9034343278a1e476ad6872a.tar.gz |
Merge tree-ssa-20020619-branch into mainline.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81764 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/except.h')
-rw-r--r-- | gcc/except.h | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/gcc/except.h b/gcc/except.h index a75b3d46d80..2fed79f30fb 100644 --- a/gcc/except.h +++ b/gcc/except.h @@ -78,16 +78,22 @@ extern void expand_eh_region_end_throw (tree); destroying an object twice. */ extern void expand_eh_region_end_fixup (tree); +/* End some sort of EH region, depending on the argument. */ +extern void expand_eh_handler (tree); + /* Note that the current EH region (if any) may contain a throw, or a call to a function which itself may contain a throw. */ -extern void note_eh_region_may_contain_throw (void); +extern void note_eh_region_may_contain_throw (struct eh_region *); +extern void note_current_region_may_contain_throw (void); /* Invokes CALLBACK for every exception handler label. Only used by old loop hackery; should not be used by new code. */ extern void for_each_eh_label (void (*) (rtx)); /* Determine if the given INSN can throw an exception. */ +extern bool can_throw_internal_1 (int); extern bool can_throw_internal (rtx); +extern bool can_throw_external_1 (int); extern bool can_throw_external (rtx); /* Set current_function_nothrow and cfun->all_throwers_are_sibcalls. */ @@ -119,10 +125,32 @@ extern void expand_builtin_eh_return (tree, tree); extern void expand_eh_return (void); extern rtx expand_builtin_extend_pointer (tree); extern rtx get_exception_pointer (struct function *); +extern rtx get_exception_filter (struct function *); extern int duplicate_eh_regions (struct function *, struct inline_remap *); +extern int check_handled (tree, tree); extern void sjlj_emit_function_exit_after (rtx); +extern struct eh_region *gen_eh_region_cleanup (struct eh_region *, + struct eh_region *); +extern struct eh_region *gen_eh_region_try (struct eh_region *); +extern struct eh_region *gen_eh_region_catch (struct eh_region *, tree); +extern struct eh_region *gen_eh_region_allowed (struct eh_region *, tree); +extern struct eh_region *gen_eh_region_must_not_throw (struct eh_region *); +extern int get_eh_region_number (struct eh_region *); +extern bool get_eh_region_may_contain_throw (struct eh_region *); +extern tree get_eh_region_tree_label (struct eh_region *); +extern void set_eh_region_tree_label (struct eh_region *, tree); + +extern void foreach_reachable_handler (int, bool, + void (*) (struct eh_region *, void *), + void *); + +extern void collect_eh_region_array (void); +extern void expand_resx_expr (tree); + +/* tree-eh.c */ +extern int lookup_stmt_eh_region (tree); /* If non-NULL, this is a function that returns an expression to be executed if an unhandled exception is propagated out of a cleanup |