mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
![]() When building with Clang we encounter these warnings: | drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c:1108:47: error: | format specifies type 'unsigned char' but the argument has type 's16' | (aka 'short') [-Werror,-Wformat] IWL_DEBUG_INFO(mvm, "\tburst index: | %hhu\n", res->ftm.burst_index); - | drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c:1111:47: error: | format specifies type 'unsigned char' but the argument has type 's32' | (aka 'int') [-Werror,-Wformat] IWL_DEBUG_INFO(mvm, "\trssi spread: | %hhu\n", res->ftm.rssi_spread); The previous format specifier `%hhu` describes a u8 but our arguments are wider than this which means bits are potentially being lost. Variadic functions (printf-like) undergo default argument promotion. Documentation/core-api/printk-formats.rst specifically recommends using the promoted-to-type's format flag. As per C11 6.3.1.1: (https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf) `If an int can represent all values of the original type ..., the value is converted to an int; otherwise, it is converted to an unsigned int. These are called the integer promotions.` Thus it makes sense to change `%hhu` to `%d` for both instances of the warning. Link: https://github.com/ClangBuiltLinux/linux/issues/378 Signed-off-by: Justin Stitt <justinstitt@google.com> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20220711222919.2043613-1-justinstitt@google.com |
||
---|---|---|
.. | ||
cfg | ||
dvm | ||
fw | ||
mei | ||
mvm | ||
pcie | ||
queue | ||
iwl-agn-hw.h | ||
iwl-config.h | ||
iwl-context-info-gen3.h | ||
iwl-context-info.h | ||
iwl-csr.h | ||
iwl-dbg-tlv.c | ||
iwl-dbg-tlv.h | ||
iwl-debug.c | ||
iwl-debug.h | ||
iwl-devtrace-data.h | ||
iwl-devtrace-io.h | ||
iwl-devtrace-iwlwifi.h | ||
iwl-devtrace-msg.h | ||
iwl-devtrace-ucode.h | ||
iwl-devtrace.c | ||
iwl-devtrace.h | ||
iwl-drv.c | ||
iwl-drv.h | ||
iwl-eeprom-parse.c | ||
iwl-eeprom-parse.h | ||
iwl-eeprom-read.c | ||
iwl-eeprom-read.h | ||
iwl-fh.h | ||
iwl-io.c | ||
iwl-io.h | ||
iwl-modparams.h | ||
iwl-nvm-parse.c | ||
iwl-nvm-parse.h | ||
iwl-op-mode.h | ||
iwl-phy-db.c | ||
iwl-phy-db.h | ||
iwl-prph.h | ||
iwl-scd.h | ||
iwl-trans.c | ||
iwl-trans.h | ||
Kconfig | ||
Makefile |