On Thu, May 4, 2023 at 2:06 PM Guo, Junfeng <junfeng....@intel.com> wrote: > > > > > -----Original Message----- > > From: jer...@marvell.com <jer...@marvell.com> > > Sent: Tuesday, May 2, 2023 21:51 > > To: dev@dpdk.org; Wu, Jingjing <jingjing...@intel.com>; Guo, Junfeng > > <junfeng....@intel.com>; Li, Xiaoyun <xiaoyun...@intel.com> > > Cc: tho...@monjalon.net; david.march...@redhat.com; > > ferruh.yi...@xilinx.com; step...@networkplumber.org; Jerin Jacob > > <jer...@marvell.com>; sta...@dpdk.org > > Subject: [dpdk-dev] [PATCH v1] examples/ntb: fix build issue with GCC 13 > > > > From: Jerin Jacob <jer...@marvell.com> > > > > Fix the following build issue by not allowing nb_ids to be zero. > > nb_ids can be zero based on rte_rawdev_xstats_get() API > > documentation but it is not valid for the case when second > > argument is NULL. > > Is this the new standard for GCC 13?
No. Looks like optimization from compiler. It is able to detect their case for zero memory allocation. > > > > > examples/ntb/ntb_fwd.c: In function 'ntb_stats_display': > > examples/ntb/ntb_fwd.c:945:23: error: 'rte_rawdev_xstats_get' > > accessing 8 bytes in a region of size 0 [-Werror=stringop-overflow=] > > 945 | if (nb_ids != rte_rawdev_xstats_get(dev_id, ids, values, nb_ids)) { > > | > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > examples/ntb/ntb_fwd.c:945:23: note: referencing argument 3 > > of type 'uint64_t[0]' {aka 'long unsigned int[]'} > > In file included from ../examples/ntb/ntb_fwd.c:17: > > lib/rawdev/rte_rawdev.h:504:1: note: in a call to function > > 'rte_rawdev_xstats_get' > > 504 | rte_rawdev_xstats_get(uint16_t dev_id, > > > > Fixes: 5194299d6ef5 ("examples/ntb: support more functions") > > Cc: sta...@dpdk.org > > Signed-off-by: Jerin Jacob <jer...@marvell.com> > > --- > > examples/ntb/ntb_fwd.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/examples/ntb/ntb_fwd.c b/examples/ntb/ntb_fwd.c > > index f9abed28e4..5489c3b3cd 100644 > > --- a/examples/ntb/ntb_fwd.c > > +++ b/examples/ntb/ntb_fwd.c > > @@ -923,7 +923,7 @@ ntb_stats_display(void) > > > > /* Get NTB dev stats and stats names */ > > nb_ids = rte_rawdev_xstats_names_get(dev_id, NULL, 0); > > - if (nb_ids < 0) { > > + if (nb_ids <= 0) { > > Should the one in func ntb_stats_clear also be updated non-zero? Some reason compiler is not detecting it. I will fix in next version. > > > printf("Error: Cannot get count of xstats\n"); > > return; > > } > > -- > > 2.40.1 >