summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-28 01:45:00 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-28 01:45:00 +0000
commit40ab1ef45a45d30cc537b7154240b60fc1bccc2b (patch)
treec2296c5c8b487ee3dbf8f77fa467e82918b66114
parente2664175b90069e322e236e81380217a7ccbd825 (diff)
downloadppe42-gcc-40ab1ef45a45d30cc537b7154240b60fc1bccc2b.tar.gz
ppe42-gcc-40ab1ef45a45d30cc537b7154240b60fc1bccc2b.zip
* 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
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/init.c8
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 <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 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
OpenPOWER on IntegriCloud