summaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2012-03-05 18:07:12 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2012-03-05 18:07:12 +0000
commit8919e4f8bf954c6bcc7dba93d1b90011c6065feb (patch)
treebd476b349706604dfb078049fff767d0a2db5e56 /gcc/cp
parent6275e0bf1997c2c9e394fdc0c1b6edc39f70af3e (diff)
downloadgcc-8919e4f8bf954c6bcc7dba93d1b90011c6065feb.tar.gz
* method.c (synthesized_method_walk): Cleanups don't affect the EH
spec either. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184945 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/method.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index f837570b7ad..71af797f77b 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-05 Jason Merrill <jason@redhat.com>
+
+ * method.c (synthesized_method_walk): Cleanups don't affect the EH
+ spec either.
+
2012-03-03 Jason Merrill <jason@redhat.com>
* init.c (perform_member_init): Cope with uninstantiated NSDMI.
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index cf2a713aa2a..07189168d1f 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -1272,8 +1272,11 @@ synthesized_method_walk (tree ctype, special_function_kind sfk, bool const_p,
rval = locate_fn_flags (base_binfo, complete_dtor_identifier,
NULL_TREE, flags, complain);
/* Note that we don't pass down trivial_p; the subobject
- destructors don't affect triviality of the constructor. */
- process_subob_fn (rval, false, spec_p, NULL,
+ destructors don't affect triviality of the constructor. Nor
+ do they affect constexpr-ness (a constant expression doesn't
+ throw) or exception-specification (a throw from one of the
+ dtors would be a double-fault). */
+ process_subob_fn (rval, false, NULL, NULL,
deleted_p, NULL, NULL,
basetype);
}