From 7d6583ad2e5257e86ca8a4f6f371d25b43c03a2d Mon Sep 17 00:00:00 2001 From: jason Date: Wed, 28 Apr 2010 01:45:00 +0000 Subject: [PATCH] * init.c (perform_member_init): Check CLASS_TYPE_P. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158822 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/ChangeLog | 4 ++++ gcc/cp/init.c | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3935cc21241..6d09c80c434 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2010-04-27 Jason Merrill + + * init.c (perform_member_init): Check CLASS_TYPE_P. + 2010-04-27 Fabien Chêne PR c++/29043 diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 57b874d5e4a..5f0f665afe4 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 -- 2.11.0