checkpatch complains about coding style error. It looks like a false positive ?
Please suggest. Thanks, Amit Shukla > -----Original Message----- > From: Amit Prakash Shukla <amitpraka...@marvell.com> > Sent: Friday, September 2, 2022 1:14 PM > To: Ruifeng Wang <ruifeng.w...@arm.com> > Cc: dev@dpdk.org; Jerin Jacob Kollanukkaran <jer...@marvell.com>; > sta...@dpdk.org; Akhil Goyal <gak...@marvell.com>; > step...@networkplumber.org; Amit Prakash Shukla > <amitpraka...@marvell.com> > Subject: [PATCH v2] examples: compilation fix for GCC-12 > > GCC-12 warns when a pointer of type union points to an array of same > defined size, as union internally gets paded with pad bytes. > > ../examples/common/neon/port_group.h:42:21: error: array subscript > 'union <anonymous>[0]' is partly outside array bounds of > 'uint16_t[5]' {aka 'short unsigned int[5]'} > [-Werror=array-bounds] > 42 | pnum->u64 = gptbl[v].pnum; > | ^~ > ../examples/common/neon/port_group.h:21:23: note: object 'pn' of > size [0, 10] > 21 | port_groupx4(uint16_t pn[FWDSTEP + 1], uint16_t *lp, uint16x8_t dp1 > | ~~~~~~~~~^~~~~~~~~~~~~~~ > ../examples/common/neon/port_group.h:43:21: error: array subscript > 'union <anonymous>[0]' is partly outside array bounds of > 'uint16_t[5]' {aka 'short unsigned int[5]'} [-Werror=array-bounds] > 43 | pnum->u16[FWDSTEP] = 1; > | ^~ > > Fixes: bdfc3816fbfc ("examples: common packet group functionality") > Cc: sta...@dpdk.org > > Signed-off-by: Amit Prakash Shukla <amitpraka...@marvell.com> > --- > v2: > - Changed to __rte_packed instead of direct attribute > > examples/common/neon/port_group.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/examples/common/neon/port_group.h > b/examples/common/neon/port_group.h > index 82c6ed6d73..04e5699f70 100644 > --- a/examples/common/neon/port_group.h > +++ b/examples/common/neon/port_group.h > @@ -24,7 +24,7 @@ port_groupx4(uint16_t pn[FWDSTEP + 1], uint16_t *lp, > uint16x8_t dp1, > union { > uint16_t u16[FWDSTEP + 1]; > uint64_t u64; > - } *pnum = (void *)pn; > + } __rte_packed *pnum = (void *)pn; > > uint16x8_t mask = {1, 2, 4, 8, 0, 0, 0, 0}; > int32_t v; > -- > 2.25.1