diff options
author | Jason Merrill <jason@redhat.com> | 2010-04-27 21:45:00 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2010-04-27 21:45:00 -0400 |
commit | 012e6a1e049a8b2706203876ee1418140842fcb3 (patch) | |
tree | c2296c5c8b487ee3dbf8f77fa467e82918b66114 /gcc | |
parent | a8ae19777a60d325671b8d0121eded97d0e82604 (diff) | |
download | gcc-012e6a1e049a8b2706203876ee1418140842fcb3.zip gcc-012e6a1e049a8b2706203876ee1418140842fcb3.tar.gz gcc-012e6a1e049a8b2706203876ee1418140842fcb3.tar.bz2 |
* init.c (perform_member_init): Check CLASS_TYPE_P.
From-SVN: r158822
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/init.c | 8 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3935cc2..6d09c80 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2010-04-27 Jason Merrill <jason@redhat.com> + + * init.c (perform_member_init): Check CLASS_TYPE_P. + 2010-04-27 Fabien ChĂȘne <fabien.chene@gmail.com> PR c++/29043 diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 57b874d..5f0f665 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -518,9 +518,11 @@ perform_member_init (tree member, tree init) member, type); core_type = strip_array_types (type); - if (CLASSTYPE_READONLY_FIELDS_NEED_INIT (core_type) - || CLASSTYPE_REF_FIELDS_NEED_INIT (core_type)) - diagnose_uninitialized_cst_or_ref_member (core_type, /*using_new=*/false); + if (CLASS_TYPE_P (core_type) + && (CLASSTYPE_READONLY_FIELDS_NEED_INIT (core_type) + || CLASSTYPE_REF_FIELDS_NEED_INIT (core_type))) + diagnose_uninitialized_cst_or_ref_member (core_type, + /*using_new=*/false); } else if (TREE_CODE (init) == TREE_LIST) /* There was an explicit member initialization. Do some work |