This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r161582 - in /trunk: gcc/cp/ChangeLog gcc/cp/ca...
- From: jason at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Wed, 30 Jun 2010 00:51:45 -0000
- Subject: r161582 - in /trunk: gcc/cp/ChangeLog gcc/cp/ca...
Author: jason
Date: Wed Jun 30 00:51:44 2010
New Revision: 161582
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=161582
Log:
Enable implicitly declared move constructor/operator= (N3053).
gcc/cp/
* class.c (add_implicitly_declared_members): A class with no
explicitly declared copy or move constructor gets both declared
implicitly, and similarly for operator=.
(check_bases): A type with no copy ctor does not inhibit
a const copy ctor in a derived class.
(check_field_decl): Likewise.
(check_bases_and_members): A nonexistent copy ctor/op= is non-trivial.
* tree.c (type_has_nontrivial_copy_init): Adjust semantics.
(trivially_copyable_p): Likewise.
* call.c (convert_like_real): Use type_has_nontrivial_copy_init.
* class.c (finish_struct_bits): Likewise.
* tree.c (build_target_expr_with_type): Likewise.
* typeck2.c (store_init_value): Likewise.
libstdc++-v3/
* include/bits/unordered_map.h: Explicitly default copy constructors.
* include/bits/unordered_set.h: Likewise.
Added:
trunk/gcc/testsuite/g++.dg/cpp0x/implicit3.C
trunk/gcc/testsuite/g++.dg/cpp0x/implicit4.C
trunk/gcc/testsuite/g++.dg/cpp0x/implicit5.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/cp/class.c
trunk/gcc/cp/tree.c
trunk/gcc/cp/typeck2.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/implicit-copy.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/rv1p.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv2n.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv2p.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv3n.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv3p.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv4n.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv4p.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv5n.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv5p.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv6n.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv6p.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv7n.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv7p.C
trunk/gcc/testsuite/g++.dg/cpp0x/rv8p.C
trunk/gcc/testsuite/g++.dg/gomp/pr26690-1.C
trunk/gcc/testsuite/g++.dg/other/error20.C
trunk/gcc/testsuite/g++.dg/other/error31.C
trunk/gcc/testsuite/g++.dg/parse/error19.C
trunk/gcc/testsuite/g++.dg/template/qualttp5.C
trunk/gcc/testsuite/g++.old-deja/g++.law/ctors5.C
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/unordered_map.h
trunk/libstdc++-v3/include/bits/unordered_set.h