OSDN Git Service

PR c++/50500
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Oct 2011 17:39:15 +0000 (17:39 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Oct 2011 17:39:15 +0000 (17:39 +0000)
commitb68e6235977c16e1b77fe61d96341586860c09ac
tree342e8cad633455730e78cd313f19f1e343339ffa
parent5eb28709f596acd06437ce8c859f3987b3d9c78c
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180159 138bc75d-0d04-0410-961f-82ee72b054a4
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