aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/init.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2020-02-10 00:47:34 +0100
committerJason Merrill <jason@redhat.com>2020-02-10 09:50:34 +0100
commit59dbb04df76da41f26192c2c219584fc3d6017cc (patch)
treeec482184d1fd95fedf476bdf3f847f3a38080263 /gcc/cp/init.c
parentfd789c816b06235b04698636db69e302b24c83ba (diff)
downloadgcc-59dbb04df76da41f26192c2c219584fc3d6017cc.zip
gcc-59dbb04df76da41f26192c2c219584fc3d6017cc.tar.gz
gcc-59dbb04df76da41f26192c2c219584fc3d6017cc.tar.bz2
c++: Fix flexible array with synthesized constructor.
We were already rejecting initialization of a flexible array member in a constructor; we similarly shouldn't try to clean it up. PR c++/93618 * tree.c (array_of_unknown_bound_p): New. * init.c (perform_member_init): Do nothing for flexible arrays.
Diffstat (limited to 'gcc/cp/init.c')
-rw-r--r--gcc/cp/init.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index 625062b..d480660 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -801,8 +801,11 @@ perform_member_init (tree member, tree init)
member);
}
- if (maybe_reject_flexarray_init (member, init))
- return;
+ if (array_of_unknown_bound_p (type))
+ {
+ maybe_reject_flexarray_init (member, init);
+ return;
+ }
if (init && TREE_CODE (init) == TREE_LIST
&& (DIRECT_LIST_INIT_P (TREE_VALUE (init))