diff options
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/method.c | 6 |
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 |