PR c++/71912 - [6/7 regression] flexible array in struct in union rejected
commit2e7b05a3cc2f344fe8c27fd18302a524418585ee
authormsebor <msebor@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Oct 2016 22:26:36 +0000 (13 22:26 +0000)
committermsebor <msebor@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Oct 2016 22:26:36 +0000 (13 22:26 +0000)
tree3a71752f8a6dd2bdac0321e7226ba6861d5ea8cc
parent7a8fd2057f13a557cb19ba710b98a4b134f82162
PR c++/71912 - [6/7 regression] flexible array in struct in union rejected

gcc/cp/ChangeLog:

PR c++/71912
* class.c (struct flexmems_t):  Add members.
(find_flexarrays): Add arguments.  Correct handling of anonymous
structs.
(diagnose_flexarrays): Adjust to issue warnings in addition to errors.
(check_flexarrays): Add argument.
(diagnose_invalid_flexarray): New functions.

gcc/testsuite/ChangeLog:

PR c++/71912
* g++.dg/ext/flexary4.C: Adjust.
* g++.dg/ext/flexary5.C: Same.
* g++.dg/ext/flexary9.C: Same.
* g++.dg/ext/flexary19.C: New test.
* g++.dg/ext/flexary18.C: New test.
* g++.dg/torture/pr64312.C: Add a dg-error directive to an ill-formed
regression test.
        * g++.dg/compat/struct-layout-1_generate.c (subfield): Add argument.
        Avoid generating a flexible array member in an array.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@241143 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c
gcc/testsuite/g++.dg/ext/flexary18.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ext/flexary19.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ext/flexary4.C
gcc/testsuite/g++.dg/ext/flexary5.C
gcc/testsuite/g++.dg/ext/flexary9.C
gcc/testsuite/g++.dg/torture/pr64312.C