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
