diff options
author | Diego Novillo <dnovillo@gcc.gnu.org> | 2004-05-13 02:41:07 -0400 |
---|---|---|
committer | Diego Novillo <dnovillo@gcc.gnu.org> | 2004-05-13 02:41:07 -0400 |
commit | 6de9cd9a886ea695aa892c3c7c07818a7b7e9e6f (patch) | |
tree | a2568888a519c077427b133de9ece5879a8484a5 /gcc/except.h | |
parent | ac1a20aec53364d77f3bdff94a2a0a06840e0fe9 (diff) | |
download | gcc-6de9cd9a886ea695aa892c3c7c07818a7b7e9e6f.zip gcc-6de9cd9a886ea695aa892c3c7c07818a7b7e9e6f.tar.gz gcc-6de9cd9a886ea695aa892c3c7c07818a7b7e9e6f.tar.bz2 |
Merge tree-ssa-20020619-branch into mainline.
From-SVN: r81764
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 a75b3d4..2fed79f 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 |