]> git.ipfire.org Git - thirdparty/gcc.git/commit
C and C++ FE changes to support flexible array members in unions and alone in structu...
authorQing Zhao <qing.zhao@oracle.com>
Mon, 6 May 2024 16:26:19 +0000 (16:26 +0000)
committerQing Zhao <qing.zhao@oracle.com>
Mon, 6 May 2024 18:32:58 +0000 (18:32 +0000)
commitf27fc59d9f7c735d200fda647a487850144b10eb
treee789eab17c762caab752fd74961f696f7b660948
parentadb1c8a0f167c3a1f7593d75f5a10eb07a5d741a
C and C++ FE changes to support flexible array members in unions and alone in structures. Adjust testcases for flexible array member in union and alone in structure extension.

PR c/53548

gcc/c/ChangeLog:

PR c/53548
* c-decl.cc (finish_struct): Change errors to pedwarns for the cases
flexible array members in union or alone in structures.

gcc/cp/ChangeLog:

PR c/53548
* class.cc (diagnose_flexarrays): Change error to pdewarn for the case
flexible array members alone in structures.
* decl.cc (grokdeclarator): Change error to pdewarn for the case
flexible array members in unions.

gcc/ChangeLog:

PR c/53548
* stor-layout.cc (place_union_field): Use zero sizes for flexible array
member fields.

gcc/testsuite/ChangeLog:

PR c/53548
* c-c++-common/builtin-clear-padding-3.c: Adjust testcase.
* g++.dg/ext/flexary12.C: Likewise.
* g++.dg/ext/flexary19.C: Likewise.
* g++.dg/ext/flexary2.C: Likewise.
* g++.dg/ext/flexary3.C: Likewise.
* g++.dg/ext/flexary36.C: Likewise.
* g++.dg/ext/flexary4.C: Likewise.
* g++.dg/ext/flexary5.C: Likewise.
* g++.dg/ext/flexary8.C: Likewise.
* g++.dg/torture/pr64280.C: Likewise.
* gcc.dg/20050620-1.c: Likewise.
* gcc.dg/940510-1.c: Likewise.
16 files changed:
gcc/c/c-decl.cc
gcc/cp/class.cc
gcc/cp/decl.cc
gcc/stor-layout.cc
gcc/testsuite/c-c++-common/builtin-clear-padding-3.c
gcc/testsuite/g++.dg/ext/flexary12.C
gcc/testsuite/g++.dg/ext/flexary19.C
gcc/testsuite/g++.dg/ext/flexary2.C
gcc/testsuite/g++.dg/ext/flexary3.C
gcc/testsuite/g++.dg/ext/flexary36.C
gcc/testsuite/g++.dg/ext/flexary4.C
gcc/testsuite/g++.dg/ext/flexary5.C
gcc/testsuite/g++.dg/ext/flexary8.C
gcc/testsuite/g++.dg/torture/pr64280.C
gcc/testsuite/gcc.dg/20050620-1.c
gcc/testsuite/gcc.dg/940510-1.c