summaryrefslogtreecommitdiff
path: root/gcc/cp/except.c
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-14 18:55:22 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-14 18:55:22 +0000
commit1d3f675f9a122578d8cabcd04bff9c521956450e (patch)
tree35fed41760bd91f12cf6b65723674cbbc0fcc28b /gcc/cp/except.c
parent73bb17ceddeaafacaf347e7570eb24dfaeed452c (diff)
downloadgcc-1d3f675f9a122578d8cabcd04bff9c521956450e.tar.gz
PR c++/44127
gcc: * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW. (gimple_call_set_nothrow): New. * gimple.c (gimple_build_call_from_tree): Call it. (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW. gcc/cp: * except.c (dtor_nothrow): Return nonzero for type with trivial destructor. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159408 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/except.c')
-rw-r--r--gcc/cp/except.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/cp/except.c b/gcc/cp/except.c
index 86acc93d255..74449fa8233 100644
--- a/gcc/cp/except.c
+++ b/gcc/cp/except.c
@@ -214,10 +214,10 @@ do_begin_catch (void)
static int
dtor_nothrow (tree type)
{
- if (type == NULL_TREE)
+ if (type == NULL_TREE || type == error_mark_node)
return 0;
- if (!CLASS_TYPE_P (type))
+ if (TYPE_HAS_TRIVIAL_DESTRUCTOR (type))
return 1;
if (CLASSTYPE_LAZY_DESTRUCTOR (type))