This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/50500] [C++0x] [DR 1082] move constructor should cause copy constructor to be deleted, but still declared
- From: "jason at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 18 Oct 2011 17:39:26 +0000
- Subject: [Bug c++/50500] [C++0x] [DR 1082] move constructor should cause copy constructor to be deleted, but still declared
- Auto-submitted: auto-generated
- References: <bug-50500-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50500
--- Comment #1 from Jason Merrill <jason at gcc dot gnu.org> 2011-10-18 17:39:26 UTC ---
Author: jason
Date: Tue Oct 18 17:39:15 2011
New Revision: 180159
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180159
Log:
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.
Added:
trunk/gcc/testsuite/g++.dg/cpp0x/implicit12.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/method.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/defaulted20.C
trunk/gcc/testsuite/g++.dg/cpp0x/defaulted21.C
trunk/gcc/testsuite/g++.dg/cpp0x/implicit-copy.C
trunk/gcc/testsuite/g++.dg/cpp0x/implicit4.C
trunk/gcc/testsuite/g++.dg/cpp0x/implicit5.C
trunk/gcc/testsuite/g++.dg/cpp0x/implicit8.C
trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C
trunk/gcc/testsuite/g++.dg/cpp0x/not_special.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv1n.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv2n.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv3n.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv4n.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv5n.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv6n.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv7n.C
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/shared_ptr.h
trunk/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
trunk/libstdc++-v3/testsuite/util/testsuite_allocator.h
trunk/libstdc++-v3/testsuite/util/testsuite_rvalref.h