Author: dim
Date: Wed Dec 21 17:01:13 2011
New Revision: 228783
URL: http://svn.freebsd.org/changeset/base/228783

Log:
  When building with clang, disable -Wshift-count-negative and
  -Wshift-count-overflow for sys/dev/ath/ath_hal/ah_regdomain.c, as it
  gets multiple instances of the following warnings:
  
  In file included from sys/dev/ath/ath_hal/ah_regdomain.c:99:
  sys/dev/ath/ath_hal/ah_regdomain/ah_rd_domains.h:69:15: warning: shift count 
is negative [-Wshift-count-negative]
           .chan11a               = BM4(F1_4950_4980,
                                    ^~~~~~~~~~~~~~~~~
  sys/dev/ath/ath_hal/ah_regdomain/ah_rd_domains.h:41:4: note: expanded from:
            W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) }
            ^
  sys/dev/ath/ath_hal/ah_regdomain/ah_rd_domains.h:34:45: note: expanded from:
          (((_a) > 63 && (_a) < 128 ? (((uint64_t) 1)<<((_a)-64)) : (uint64_t) 
0))
                                                     ^ ~~~~~~~~~
  
  and:
  
  In file included from sys/dev/ath/ath_hal/ah_regdomain.c:99:
  sys/dev/ath/ath_hal/ah_regdomain/ah_rd_domains.h:629:15: error: shift count 
>= width of type [-Werror,-Wshift-count-overflow]
           .chan11a               = BM4(W2_5260_5320,
                                    ^~~~~~~~~~~~~~~~~
  sys/dev/ath/ath_hal/ah_regdomain/ah_rd_domains.h:40:34: note: expanded from:
          { W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd),                        \
                                          ^
  sys/dev/ath/ath_hal/ah_regdomain/ah_rd_domains.h:32:44: note: expanded from:
          (((_a) >= 0 && (_a) < 64 ? (((uint64_t) 1)<<(_a)) : (uint64_t) 0))
                                                    ^ ~~~~
  
  Both warnings are false positives, caused by LLVM PR 10030.  For global
  initializations, clang fails to detect that the branch of the ternary
  operator causing the warning is dead.
  
  MFC after:    1 week

Modified:
  head/sys/conf/files
  head/sys/conf/kern.mk

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files Wed Dec 21 16:47:01 2011        (r228782)
+++ head/sys/conf/files Wed Dec 21 17:01:13 2011        (r228783)
@@ -613,7 +613,7 @@ dev/ath/ath_hal/ah_eeprom_9287.c \
        optional ath_hal | ath_ar9287 \
        compile-with "${NORMAL_C} -I$S/dev/ath"
 dev/ath/ath_hal/ah_regdomain.c optional ath \
-       compile-with "${NORMAL_C} -I$S/dev/ath"
+       compile-with "${NORMAL_C} ${NO_WSHIFT_COUNT_NEGATIVE} 
${NO_WSHIFT_COUNT_OVERFLOW} -I$S/dev/ath"
 # ar5210
 dev/ath/ath_hal/ar5210/ar5210_attach.c         optional ath_hal | ath_ar5210 \
        compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"

Modified: head/sys/conf/kern.mk
==============================================================================
--- head/sys/conf/kern.mk       Wed Dec 21 16:47:01 2011        (r228782)
+++ head/sys/conf/kern.mk       Wed Dec 21 17:01:13 2011        (r228783)
@@ -17,6 +17,8 @@ CWARNFLAGS?=  -Wall -Wredundant-decls -Wn
 .if ${CC:T:Mclang} == "clang"
 NO_WCONSTANT_CONVERSION=       -Wno-constant-conversion
 NO_WARRAY_BOUNDS=              -Wno-array-bounds
+NO_WSHIFT_COUNT_NEGATIVE=      -Wno-shift-count-negative
+NO_WSHIFT_COUNT_OVERFLOW=      -Wno-shift-count-overflow
 .endif
 
 #
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to