summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2012-07-13 15:08:55 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2012-07-13 15:08:55 +0000
commitb458c189b621e669fa0983f8b8049c650c1c66d1 (patch)
tree0f5a722b816b0be39c0dfe938d7aea114af6d549
parent4f4d16bc4591622869393efa796430de2e06a42e (diff)
downloadgcc-b458c189b621e669fa0983f8b8049c650c1c66d1.tar.gz
PR c++/53953
* method.c (synthesized_method_walk): Initialize no_implicit_p sooner. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189465 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/method.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index c5f23123276..1347b496844 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2012-07-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/53953
+ * method.c (synthesized_method_walk): Initialize no_implicit_p sooner.
+
2012-07-12 Jason Merrill <jason@redhat.com>
* pt.c (instantiate_decl): Check typedefs access here.
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index bd0792fae3b..b0e9ece3c20 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -1120,6 +1120,9 @@ synthesized_method_walk (tree ctype, special_function_kind sfk, bool const_p,
if (spec_p)
*spec_p = (cxx_dialect >= cxx0x ? noexcept_true_spec : empty_except_spec);
+ if (no_implicit_p)
+ *no_implicit_p = false;
+
if (deleted_p)
{
/* "The closure type associated with a lambda-expression has a deleted
@@ -1195,9 +1198,6 @@ synthesized_method_walk (tree ctype, special_function_kind sfk, bool const_p,
if (trivial_p)
*trivial_p = expected_trivial;
- if (no_implicit_p)
- *no_implicit_p = false;
-
/* The TYPE_HAS_COMPLEX_* flags tell us about constraints from base
class versions and other properties of the type. But a subobject
class can be trivially copyable and yet have overload resolution