This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/20039] uninitialized const in `new' of `const struct'
- 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: Fri, 23 Sep 2011 21:30:52 +0000
- Subject: [Bug c++/20039] uninitialized const in `new' of `const struct'
- Auto-submitted: auto-generated
- References: <bug-20039-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20039
--- Comment #6 from Jason Merrill <jason at gcc dot gnu.org> 2011-09-23 21:30:52 UTC ---
Author: jason
Date: Fri Sep 23 21:30:48 2011
New Revision: 179130
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179130
Log:
Core 234 - allow const objects with no initializer or
user-provided default constructor if the defaulted constructor
initializes all the subobjects.
PR c++/20039
PR c++/42844
* class.c (default_init_uninitialized_part): New.
* cp-tree.h: Declare it.
* decl.c (check_for_uninitialized_const_var): Use it.
* init.c (perform_member_init): Likewise.
(build_new_1): Likewise.
* method.c (walk_field_subobs): Likewise.
Added:
trunk/gcc/testsuite/g++.dg/init/const8.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/init.c
trunk/gcc/cp/method.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-object1.C
trunk/gcc/testsuite/g++.dg/cpp0x/defaulted2.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr42844-2.C
trunk/gcc/testsuite/g++.dg/init/pr20039.C
trunk/gcc/testsuite/g++.dg/init/pr42844.C