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


Reply via email to