diff options
| author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-04-28 01:45:00 +0000 |
|---|---|---|
| committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-04-28 01:45:00 +0000 |
| commit | 40ab1ef45a45d30cc537b7154240b60fc1bccc2b (patch) | |
| tree | c2296c5c8b487ee3dbf8f77fa467e82918b66114 | |
| parent | e2664175b90069e322e236e81380217a7ccbd825 (diff) | |
| download | ppe42-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/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 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 |

