re PR c++/50500 ([C++0x] [DR 1082] move constructor should cause copy constructor...
authorJason Merrill <jason@redhat.com>
Tue, 18 Oct 2011 17:39:15 +0000 (13:39 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Tue, 18 Oct 2011 17:39:15 +0000 (13:39 -0400)
commita2e70335e27f8e348cf5c8d11765a46d82282669
tree342e8cad633455730e78cd313f19f1e343339ffa
parentc5d942188b70dc182150ae9fb57d502cbf0e9e75
re PR c++/50500 ([C++0x] [DR 1082] move constructor should cause copy constructor to be deleted, but still declared)

PR c++/50500
DR 1082
* class.c (type_has_user_declared_move_constructor): New.
(type_has_user_declared_move_assign): New.
(add_implicitly_declared_members): Add lazy copy ops
even if there's a move.
* method.c (lazily_declare_fn): Delete implicit copies
if there's a move.
(maybe_explain_implicit_delete): Explain this.  Use inform rather
than error.
* cp-tree.h: Declare new fns.

From-SVN: r180159
27 files changed:
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/method.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/defaulted20.C
gcc/testsuite/g++.dg/cpp0x/defaulted21.C
gcc/testsuite/g++.dg/cpp0x/implicit-copy.C
gcc/testsuite/g++.dg/cpp0x/implicit12.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/implicit4.C
gcc/testsuite/g++.dg/cpp0x/implicit5.C
gcc/testsuite/g++.dg/cpp0x/implicit8.C
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C
gcc/testsuite/g++.dg/cpp0x/not_special.C
gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C
gcc/testsuite/g++.dg/cpp0x/rv1n.C
gcc/testsuite/g++.dg/cpp0x/rv2n.C
gcc/testsuite/g++.dg/cpp0x/rv3n.C
gcc/testsuite/g++.dg/cpp0x/rv4n.C
gcc/testsuite/g++.dg/cpp0x/rv5n.C
gcc/testsuite/g++.dg/cpp0x/rv6n.C
gcc/testsuite/g++.dg/cpp0x/rv7n.C
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/shared_ptr.h
libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
libstdc++-v3/testsuite/util/testsuite_allocator.h
libstdc++-v3/testsuite/util/testsuite_rvalref.h