> From: Stephen Hemminger [mailto:step...@networkplumber.org] > Sent: Thursday, 18 January 2024 21.18 > > The sfc base code had its own definition of static assertions > using the out of bound array access hack. Replace it with a > static_assert like rte_common.h. > > Fixes: f67e4719147d ("net/sfc/base: fix coding style") > Signed-off-by: Stephen Hemminger <step...@networkplumber.org> > --- > drivers/common/sfc_efx/base/efx.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/common/sfc_efx/base/efx.h > b/drivers/common/sfc_efx/base/efx.h > index 3312c2fa8f81..9ce266c43610 100644 > --- a/drivers/common/sfc_efx/base/efx.h > +++ b/drivers/common/sfc_efx/base/efx.h > @@ -17,8 +17,8 @@ > extern "C" { > #endif > > -#define EFX_STATIC_ASSERT(_cond) \ > - ((void)sizeof (char[(_cond) ? 1 : -1])) > +#define EFX_STATIC_ASSERT(_cond) \ > + do { static_assert((_cond), "assert failed" #_cond); } while (0)
This probably works for the DPDK project. For other projects using the same file, it might also need "#include <assert.h>" (containing the static_assert convenience macro for C), and possibly your workaround for toolchain issues with missing C11 macro in FreeBSD. Maybe not in this file, but somewhere. Acked-by: Morten Brørup <m...@smartsharesystems.com>