From 1aa6d44decb33ce3eab0efe5336b75fa2dfa3733 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Wed, 21 Dec 2022 10:47:08 -0800 Subject: [PATCH] Disable -Wzero-length-bounds for the kernel for GCC 12. The mlx5 driver and some other OFED bits use a somewhat dubious pattern of: struct foo { uint64_t arg[0]; /* Real members of a struct */ }; The code then treats 'arg' as if it were really a kind of union such that foo.arg[N] functions similarly to (uint64_t *)foo[N]. This uses of foo.arg[N] then trigger this warning. No real bugs were found by this warning though, so just turn it off globally. Reviewed by: hselasky, kib Differential Revision: https://reviews.freebsd.org/D37630 --- sys/conf/kern.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/conf/kern.mk b/sys/conf/kern.mk index 5231a289981..65cf86375cc 100644 --- a/sys/conf/kern.mk +++ b/sys/conf/kern.mk @@ -79,7 +79,8 @@ CWARNEXTRA+= -Wno-address-of-packed-member \ -Wno-error=alloca-larger-than= .if ${COMPILER_VERSION} >= 120100 CWARNEXTRA+= -Wno-error=nonnull \ - -Wno-dangling-pointer + -Wno-dangling-pointer \ + -Wno-zero-length-bounds .endif .endif