Fix PR C++/48859

From-SVN: r173583
This commit is contained in:
Fabien Chêne 2011-05-09 19:42:21 +02:00
parent 03808d178a
commit 1c682d060b
4 changed files with 27 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2011-05-07 Fabien Chêne <fabien@gcc.gnu.org>
PR c++/48859
* init.c (diagnose_uninitialized_cst_or_ref_member_1): stop the
recursion if there is user defined constructor.
2011-05-09 Jason Merrill <jason@redhat.com>
PR c++/34772

View File

@ -1915,6 +1915,9 @@ diagnose_uninitialized_cst_or_ref_member_1 (tree type, tree origin,
field_type = strip_array_types (TREE_TYPE (field));
if (type_has_user_provided_constructor (field_type))
continue;
if (TREE_CODE (field_type) == REFERENCE_TYPE)
{
++ error_count;

View File

@ -1,3 +1,7 @@
2001-05-07 Fabien Chêne <fabien@gcc.gnu.org>
PR c++/48859
* g++.dg/init/pr48859.C: New.
2011-05-09 Jason Merrill <jason@redhat.com>
* gcc.dg/gcc.dg/uninit-D.c: Move to c-c++-common.

View File

@ -0,0 +1,14 @@
// PR c++/48859
// { dg-do compile }
struct HasConstructor {
HasConstructor() {}
};
class ConstMember {
const HasConstructor empty_;
};
void foo() {
new ConstMember;
}