net/sched/act_ct.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
-Wflex-array-member-not-at-end was introduced in GCC-14, and we are
getting ready to enable it, globally.
Move the conflicting declaration to the end of the structure. Notice
that `struct zones_ht_key` is a flexible structure --a structure that
contains a flexible-array member.
Fix the following warning:
net/sched/act_ct.c:57:29: 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>
---
net/sched/act_ct.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c
index 3ba8e7e739b5..b304ef46b5be 100644
--- a/net/sched/act_ct.c
+++ b/net/sched/act_ct.c
@@ -54,9 +54,11 @@ struct tcf_ct_flow_table {
struct rcu_work rwork;
struct nf_flowtable nf_ft;
refcount_t ref;
- struct zones_ht_key key;
bool dying;
+
+ /* Must be last - ends in a flex-array member. */
+ struct zones_ht_key key;
};
static const struct rhashtable_params zones_params = {
--
2.34.1
On Mon, 5 Aug 2024 09:35:46 -0600 Gustavo A. R. Silva wrote: > -Wflex-array-member-not-at-end was introduced in GCC-14, and we are > getting ready to enable it, globally. > > Move the conflicting declaration to the end of the structure. Notice > that `struct zones_ht_key` is a flexible structure --a structure that > contains a flexible-array member. I think the flex member is there purely to mark the end of the struct. You can use offsetofend(zone) instead of offsetof(pad), and delete pad. -- pw-bot: cr
On 08/08/24 20:46, Jakub Kicinski wrote: > On Mon, 5 Aug 2024 09:35:46 -0600 Gustavo A. R. Silva wrote: >> -Wflex-array-member-not-at-end was introduced in GCC-14, and we are >> getting ready to enable it, globally. >> >> Move the conflicting declaration to the end of the structure. Notice >> that `struct zones_ht_key` is a flexible structure --a structure that >> contains a flexible-array member. > > I think the flex member is there purely to mark the end of the struct. > You can use offsetofend(zone) instead of offsetof(pad), and delete pad. Nice! I'll send v2, shortly. Thanks -- Gustavo
On Mon, Aug 05, 2024 at 09:35:46AM -0600, Gustavo A. R. Silva wrote: > -Wflex-array-member-not-at-end was introduced in GCC-14, and we are > getting ready to enable it, globally. > > Move the conflicting declaration to the end of the structure. Notice > that `struct zones_ht_key` is a flexible structure --a structure that > contains a flexible-array member. > > Fix the following warning: > net/sched/act_ct.c:57:29: 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> Reviewed-by: Simon Horman <horms@kernel.org>
© 2016 - 2025 Red Hat, Inc.