Hello André, On Tue, Feb 4, 2025 at 9:57 PM Andre Muezerie <andre...@linux.microsoft.com> wrote: > @@ -168,10 +169,20 @@ test_flip_size(test_fun test_fun, assign_fun > assign_fun, flip_fun flip_fun, size > rand_bitset(bitset, size); > > for (i = 0; i < size; i++) { > - RTE_BITSET_DECLARE(reference, size); > + RTE_BITSET_DECLARE(reference, RAND_SET_MAX_SIZE); > + > +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION >= 110000) > +#pragma GCC diagnostic push > +#pragma GCC diagnostic ignored "-Warray-bounds" > +#endif > > + /* gcc is giving false positives here when code is optimized > */
Why not simply alloca(te the right size)? I tested with my gcc 14 (for which I could reproduce the array bound warning). By replacing with uint64_t *reference = alloca(RTE_BITSET_SIZE(size)), gcc seems to be less smart and won't inspect 'reference' and 'bitset' arrays boundaries. > rte_bitset_copy(reference, bitset, size); > > +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION >= 110000) > +#pragma GCC diagnostic pop > +#endif > + > bool value = test_fun(bitset, i); > > flip_fun(bitset, i); The rest of the series lgtm and the plan is to merge it for rc1. Just beware that, if you send a new revision, new drivers (net/xsc and net/zxdh) landed in main. Both use VLA, so both require cflags += no_wvla_cflag in their meson.build. -- David Marchand