Hi Jan,

> On 30 Apr 2024, at 12:37, Jan Beulich <[email protected]> wrote:
> 
> On 30.04.2024 13:09, Luca Fancellu wrote:
>> --- a/xen/arch/arm/include/asm/setup.h
>> +++ b/xen/arch/arm/include/asm/setup.h
>> @@ -64,18 +64,20 @@ struct membank {
>> };
>> 
>> struct membanks {
>> -    unsigned int nr_banks;
>> -    unsigned int max_banks;
>> +    __struct_group(membanks_hdr, common, ,
>> +        unsigned int nr_banks;
>> +        unsigned int max_banks;
>> +    );
>>     struct membank bank[];
>> };
> 
> I'm afraid I can't spot why __struct_group() is needed here. Why would just
> one of the two more straightforward
> 
> struct membanks {
>    struct membanks_hdr {
>        unsigned int nr_banks;
>        unsigned int max_banks;
>    );
>    struct membank bank[];
> };
> 

At the first sight I thought this solution could have worked, however GCC 
brought me back down to earth
remembering me that flexible array members can’t be left alone in an empty 
structure:

/data_sdc/lucfan01/gitlab_mickledore_xen/xen/xen/arch/arm/include/asm/setup.h:70:6:
 error: declaration does not declare anything [-Werror]
70 | };
| ^
/data_sdc/lucfan01/gitlab_mickledore_xen/xen/xen/arch/arm/include/asm/setup.h:71:20:
 error: flexible array member in a struct with no named members
71 | struct membank bank[];
| ^~~~
[...]

Cheers,
Luca

Reply via email to