On 26/10/20 16:03, Daniele Buono wrote: > Hi Paolo, > I reorganized UASStatus to put uas_iu at the end and it works fine. > Unfortunately, this uncovered another part of the code with a similar > issue (variable sized type not at the end of the struct), here: > > In file included from ../qemu-cfi-v3/target/s390x/diag.c:21: > ../qemu-cfi-v3/hw/s390x/ipl.h:161:23: error: field 'iplb' with variable > sized type 'IplParameterBlock' (aka 'union IplParameterBlock') not at > the end of a struct or class is a GNU extension > [-Werror,-Wgnu-variable-sized-type-not-at-end] > IplParameterBlock iplb; > ^ > ../qemu-cfi-v3/hw/s390x/ipl.h:162:23: error: field 'iplb_pv' with > variable sized type 'IplParameterBlock' (aka 'union IplParameterBlock') > not at the end of a struct or class is a GNU extension > [-Werror,-Wgnu-variable-sized-type-not-at-end] > IplParameterBlock iplb_pv; > > My understanding is that each of these IplParameterBlock may contain > either a IPLBlockPV or a IplBlockFcp, which both end with a variable > sized field (an array). > > Adding maintainers of s390x to see if they have a suggested solution to > avoid disabling the warning.
This one seems okay because the union constrains the size to 4K. If "[0]" is enough to shut up the compiler, I'd say do that. Paolo