aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-08-05 15:12:09 -0400
committerJason Merrill <jason@gcc.gnu.org>2011-08-05 15:12:09 -0400
commita034826198b7711835f21307c6976926442f5b97 (patch)
tree2b84dae0671d517bec48d530b545feaf35663cb5 /gcc/cp
parent3bed46f67f40e6c3feaa5f02beebf4d52b3ffab5 (diff)
downloadgcc-a034826198b7711835f21307c6976926442f5b97.zip
gcc-a034826198b7711835f21307c6976926442f5b97.tar.gz
gcc-a034826198b7711835f21307c6976926442f5b97.tar.bz2
init.c (perform_member_init): Always build_aggr_init for a class member with an explicit mem-initializer.
* init.c (perform_member_init): Always build_aggr_init for a class member with an explicit mem-initializer. From-SVN: r177477
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/init.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 3d9b3b6..8eb6b74 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,8 @@
2011-08-05 Jason Merrill <jason@redhat.com>
+ * init.c (perform_member_init): Always build_aggr_init
+ for a class member with an explicit mem-initializer.
+
* pt.c (unify) [TEMPLATE_TYPE_PARM]: Allow VLA for C++0x 'auto'.
2011-08-04 Jakub Jelinek <jakub@redhat.com>
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index 31171cf..d9e475e 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -547,7 +547,8 @@ perform_member_init (tree member, tree init)
finish_expr_stmt (init);
}
}
- else if (type_build_ctor_call (type))
+ else if (type_build_ctor_call (type)
+ || (init && CLASS_TYPE_P (strip_array_types (type))))
{
if (TREE_CODE (type) == ARRAY_TYPE)
{