04/10/2022 13:17, Thomas Monjalon: > When compiling with MinGW GCC 12, > the rte_flow_item array is seen as read out of bound: > > net/i40e/i40e_hash.c:389:47: error: > array subscript 50 is above array bounds of ‘const uint64_t[50]’ > {aka ‘const long long unsigned int[50]’} [-Werror=array-bounds] > 389 | item_hdr = pattern_item_header[last_item_type]; > | ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ > > It seems the assert check done above this line has no impact. > A check is added to make the compiler happy.
We could add those lines as the real issue is the item array: Fixes: ef4c16fd9148 ("net/i40e: refactor RSS flow") Cc: sta...@dpdk.org > Signed-off-by: Thomas Monjalon <tho...@monjalon.net> > --- > drivers/net/i40e/i40e_hash.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/net/i40e/i40e_hash.c b/drivers/net/i40e/i40e_hash.c > index 8962e9d97a..ba616aea9f 100644 > --- a/drivers/net/i40e/i40e_hash.c > +++ b/drivers/net/i40e/i40e_hash.c > @@ -386,6 +386,8 @@ i40e_hash_get_pattern_type(const struct rte_flow_item > pattern[], > prev_item_type = last_item_type; > assert(last_item_type < (enum rte_flow_item_type) > RTE_DIM(pattern_item_header)); > + if (last_item_type >= RTE_DIM(pattern_item_header)) > + goto not_sup; > item_hdr = pattern_item_header[last_item_type]; > assert(item_hdr); > >