diff options
author | Mark Mitchell <mark@codesourcery.com> | 2001-05-17 18:12:27 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2001-05-17 18:12:27 +0000 |
commit | e6855a2d2906226cbaaa5f8653e44e42596771c9 (patch) | |
tree | ea2ee85a1a8e761513f6ee751bb994a2aeee2dd0 /gcc/except.h | |
parent | 8979edec07977e922f0534a4a29e720a5b983fa6 (diff) | |
download | gcc-e6855a2d2906226cbaaa5f8653e44e42596771c9.tar.gz |
except.h (protect_cleanup_actions): Remove it.
* except.h (protect_cleanup_actions): Remove it.
(lang_protect_cleanup_actions): Declare it.
* except.c (protect_cleanup_actions): Remove it.
(lang_protect_cleanup_actions): New variable.
(init_eh): Don't make protect_cleanup_actions a GC root.
(expand_eh_region_and_cleanup): Call
lang_protect_cleanup_actions.
(output_function_exception_table): Remove unused `align'
variable.
* varasm.c (assemble_external): Abort if we have not yet
opened the assembly output file.
* except.c (cp_protect_cleanup_actions): New function.
(init_exception_processing): Don't set protect_cleanup_actions
here. Do set lang_protect_cleanup_actions.
From-SVN: r42218
Diffstat (limited to 'gcc/except.h')
-rw-r--r-- | gcc/except.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/except.h b/gcc/except.h index e0c8c2e6959..2720241d9a6 100644 --- a/gcc/except.h +++ b/gcc/except.h @@ -147,8 +147,13 @@ extern int duplicate_eh_regions PARAMS ((struct function *, extern void sjlj_emit_function_exit_after PARAMS ((rtx)); -/* Nonzero to protect cleanup actions with must-not-throw regions. */ -extern tree protect_cleanup_actions; +/* If non-NULL, this is a function that returns an expression to be + executed if an unhandled exception is propogated out of a cleanup + region. For example, in C++, an exception thrown by a destructor + during stack unwinding is required to result in a call to + `std::terminate', so the C++ version of this function returns a + CALL_EXPR for `std::terminate'. */ +extern tree (*lang_protect_cleanup_actions) PARAMS ((void)); /* Return true if type A catches type B. */ extern int (*lang_eh_type_covers) PARAMS ((tree a, tree b)); |