Messages in this thread |  | | Date | Fri, 9 Aug 2024 09:42:03 -0700 | | From | Stephen Hemminger <> | | Subject | Re: [PATCH v2][next] UAPI: net/sched: Avoid -Wflex-array-member-not-at-end warning |
| |
On Fri, 9 Aug 2024 09:27:51 -0600 "Gustavo A. R. Silva" <gustavoars@kernel.org> wrote:
> -Wflex-array-member-not-at-end has been introduced in GCC-14, and we > are getting ready to enable it, globally. > > So, in order to avoid ending up with a flexible-array member in the > middle of multiple other structs, we use the `__struct_group()` > helper to create a new tagged `struct tc_u32_sel_hdr`. This structure > groups together all the members of the flexible `struct tc_u32_sel` > except the flexible array. > > As a result, the array is effectively separated from the rest of the > members without modifying the memory layout of the flexible structure. > We then change the type of the middle struct member currently causing > trouble from `struct tc_u32_sel` to `struct tc_u32_sel_hdr`. > > This approach avoids having to implement `struct tc_u32_sel_hdr` > as a completely separate structure, thus preventing having to maintain > two independent but basically identical structures, closing the door > to potential bugs in the future. > > So, with these changes, fix the following warning: > drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32_parse.h:245:27: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] > > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Tested this with iproute2-next and clang and no problem.
The patch might be better split into two parts?
|  |