aboutsummaryrefslogtreecommitdiff
path: root/gcc/except.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2009-09-28 09:44:32 -0700
committerRichard Henderson <rth@gcc.gnu.org>2009-09-28 09:44:32 -0700
commit384c400a82f70420e31fbdc7c1b0b9368fc53b5b (patch)
tree96758456da27013ac77e14db7add80d1de6fb85f /gcc/except.h
parentaa633255e79391140eaff46920861926a35a1eaa (diff)
downloadgcc-384c400a82f70420e31fbdc7c1b0b9368fc53b5b.zip
gcc-384c400a82f70420e31fbdc7c1b0b9368fc53b5b.tar.gz
gcc-384c400a82f70420e31fbdc7c1b0b9368fc53b5b.tar.bz2
except.h (struct eh_region_d): Add use_cxa_end_cleanup.
* except.h (struct eh_region_d): Add use_cxa_end_cleanup. * except.c (gen_eh_region): Set it. (duplicate_eh_regions_1): Copy it. * tree-eh.c (lower_resx): Use it to determine which function to call to resume. * langhooks.h (struct lang_hooks): Add eh_use_cxa_end_cleanup. * langhooks-def.h (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New. * builtins.def (BUILT_IN_CXA_END_CLEANUP): New. * tree.c (build_common_builtin_nodes): Remove parameter. Build BUILT_IN_CXA_END_CLEANUP if necessary. * tree.h (build_common_builtin_nodes): Update decl. * c-common.c (c_define_builtins): Update call to build_common_builtin_nodes. gcc/ada/ * gcc-interface/utils.c (gnat_install_builtins): Update call to build_common_builtin_nodes. gcc/cp/ * cp-objcp-common.h (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New. gcc/fortran/ * f95-lang.c (gfc_init_builtin_functions): Update call to build_common_builtin_nodes. gcc/java/ * builtins.c (initialize_builtins): Update call to build_common_builtin_nodes. * lang.c (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New. From-SVN: r152241
Diffstat (limited to 'gcc/except.h')
-rw-r--r--gcc/except.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/except.h b/gcc/except.h
index 3e9a39c..f1dbf90 100644
--- a/gcc/except.h
+++ b/gcc/except.h
@@ -171,6 +171,10 @@ struct GTY(()) eh_region_d
Each region gets its own psuedos so that if there are nested exceptions
we do not overwrite the values of the first exception. */
rtx exc_ptr_reg, filter_reg;
+
+ /* True if this region should use __cxa_end_cleanup instead
+ of _Unwind_Resume. */
+ bool use_cxa_end_cleanup;
};
typedef struct eh_landing_pad_d *eh_landing_pad;