On Tue, Mar 15, 2016 at 5:25 PM, Joseph Myers wrote: > On Tue, 15 Mar 2016, H.J. Lu wrote: > >> On Tue, Mar 15, 2016 at 3:34 PM, Joseph Myers wrote: >> > On Tue, 15 Mar 2016, H.J. Lu wrote: >> > >> >> On Tue, Mar 15, 2016 at 2:39 PM, Joseph Myers wrote: >> >> > I'm not sure if the zero-size arrays (a GNU extension) are considered to >> >> > make a struct non-empty, but in any case I think the tests should cover >> >> > such arrays as elements of structs. >> >> >> >> There are couple tests for structs with members of array >> >> of empty types. testsuite/g++.dg/abi/empty14.h has >> > >> > My concern is the other way round - structs with elements such as >> > "int a[0];", an array [0] of a nonempty type. My reading of the subobject >> > definition is that such an array should not cause the struct to be >> > considered nonempty (it doesn't result in any int subobjects). >> >> This is a test for struct with zero-size array, which isn't treated >> as empty type. C++ and C are compatible in its passing. > > Where is the current definition of empty types you're proposing for use in > GCC? Is the behavior of this case clear from that definition? https://gcc.gnu.org/ml/gcc/2016-03/msg00071.html Jason's patch follows it. Here is a test for struct with zero-size array of empty type, which is treated as empty type. -- H.J.