Implement C++0x unrestricted unions (N2544)
commit57ece2583335d663e2787df4f6fe3804ec921ea9
authorJason Merrill <jason@redhat.com>
Wed, 14 Jul 2010 17:00:51 +0000 (14 13:00 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 14 Jul 2010 17:00:51 +0000 (14 13:00 -0400)
tree152c38c98a68f7f49ca34046d6b08f92764dea84
parenta9c5db803f4921a59f8a97307df66bd0f546ff42
Implement C++0x unrestricted unions (N2544)

Implement C++0x unrestricted unions (N2544)
* class.c (check_field_decl): Loosen union handling in C++0x.
* method.c (walk_field_subobs): Split out from...
(synthesized_method_walk): ...here.  Set msg before loops.
(process_subob_fn): Check for triviality in union members.
* init.c (sort_mem_initializers): Splice out uninitialized
anonymous unions and union members.
(push_base_cleanups): Don't automatically destroy anonymous unions
and union members.

From-SVN: r162187
12 files changed:
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/init.c
gcc/cp/method.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/defaulted2.C
gcc/testsuite/g++.dg/cpp0x/union1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/union2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/union3.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.bugs/900121_02.C
gcc/testsuite/g++.old-deja/g++.ext/anon2.C
gcc/testsuite/g++.old-deja/g++.mike/misc6.C