On Wed, May 13, 2020 at 5:36 PM Nithin Dabilpuram <ndabilpu...@marvell.com> wrote: > > Older GCC(~4) complains about uninitialized 'dip' > var though all the lanes of the vec register are set. > Hence this patch explicitly initializes vec register > to fix the issue. > > In file included from ip4_lookup.c:34:0: > ip4_lookup_neon.h: n function ‘ip4_lookup_node_process’: \ > ip4_lookup_neon.h:25:12: error: ‘dip’ may be used uninitialized in \ > this function [-Werror=maybe-uninitialized] > int32x4_t dip; > ^ > > Fixes: 16df6a2c6671 ("node: add IPv4 lookup for arm64") >
Reported-by: David Marchand <david.march...@redhat.com> > Signed-off-by: Nithin Dabilpuram <ndabilpu...@marvell.com> > Reviewed-by: Ruifeng Wang <ruifeng.w...@arm.com> It is a false positive, all the lines are updated by the c code. Just to make the old compiler to happy we need to add unnecessary additional instruction. Looks like there is no other clean way to suppress the warning. Reviewed-by: Jerin Jacob <jer...@marvell.com> > --- > v2: > - Add error in commit msg. > > lib/librte_node/ip4_lookup_neon.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/lib/librte_node/ip4_lookup_neon.h > b/lib/librte_node/ip4_lookup_neon.h > index bb3150f..dd21cb2 100644 > --- a/lib/librte_node/ip4_lookup_neon.h > +++ b/lib/librte_node/ip4_lookup_neon.h > @@ -45,6 +45,7 @@ ip4_lookup_node_process(struct rte_graph *graph, struct > rte_node *node, > rte_prefetch0(rte_pktmbuf_mtod_offset(pkts[i], void *, > sizeof(struct > rte_ether_hdr))); > > + dip = vdupq_n_s32(0); > /* Get stream for the speculated next node */ > to_next = rte_node_next_stream_get(graph, node, next_index, nb_objs); > while (n_left_from >= 4) { > -- > 2.8.4 >