From c4156406850c6803ad20e0cf84e1dd0fe1fb6d72 Mon Sep 17 00:00:00 2001 From: dim Date: Mon, 2 Jan 2012 12:53:11 +0000 Subject: [PATCH] MFC r228781: When building with clang, disable -Warray-bounds for sys/dev/asr/asr.c, as it gets the following warning: sys/dev/asr/asr.c:1836:29: warning: array index of '58' indexes past the end of an array (that contains 1 element) [-Warray-bounds] while ((len > 0) && (sg < &((PPRIVATE_SCSI_SCB_EXECUTE_MESSAGE) ^ sys/dev/asr/i2omsg.h:934:8: note: array 'Simple' declared here I2O_SGE_SIMPLE_ELEMENT Simple[1]; ^ This is a false positive, since I2O_SG_ELEMENT::Simple is not declared as a C99 flexible array member, but in the old (but more portable) way. At run-time, the proper number of array elements will hopefully have been allocated. MFC r228865: Amend r228781 by also disabling -Warray-bounds warnings for the asr module. git-svn-id: svn://svn.freebsd.org/base/stable/9@229274 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- sys/conf/files | 3 ++- sys/conf/kern.mk | 1 + sys/modules/asr/Makefile | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/conf/files b/sys/conf/files index 55845613d..c244b7d3d 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -529,7 +529,8 @@ dev/an/if_an.c optional an dev/an/if_an_isa.c optional an isa dev/an/if_an_pccard.c optional an pccard dev/an/if_an_pci.c optional an pci -dev/asr/asr.c optional asr pci +dev/asr/asr.c optional asr pci \ + compile-with "${NORMAL_C} ${NO_WARRAY_BOUNDS}" # dev/ata/ata_if.m optional ata | atacore dev/ata/ata-all.c optional ata | atacore diff --git a/sys/conf/kern.mk b/sys/conf/kern.mk index 5c219f0d9..84d455530 100644 --- a/sys/conf/kern.mk +++ b/sys/conf/kern.mk @@ -16,6 +16,7 @@ CWARNFLAGS?= -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \ # a false positive. .if ${CC:T:Mclang} == "clang" NO_WCONSTANT_CONVERSION= -Wno-constant-conversion +NO_WARRAY_BOUNDS= -Wno-array-bounds .endif # diff --git a/sys/modules/asr/Makefile b/sys/modules/asr/Makefile index 5873415d0..c225b25e1 100644 --- a/sys/modules/asr/Makefile +++ b/sys/modules/asr/Makefile @@ -12,3 +12,6 @@ SRCS+= opt_asr.h .endif .include + +CWARNFLAGS.asr.c= ${NO_WARRAY_BOUNDS} +CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} -- 2.45.0