diff options
author | Jason Merrill <jason@redhat.com> | 2020-02-10 00:47:34 +0100 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2020-02-10 09:50:34 +0100 |
commit | 59dbb04df76da41f26192c2c219584fc3d6017cc (patch) | |
tree | ec482184d1fd95fedf476bdf3f847f3a38080263 /gcc/cp/init.c | |
parent | fd789c816b06235b04698636db69e302b24c83ba (diff) | |
download | gcc-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.c | 7 |
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)) |