[PATCH 4.4 28/70] arm64: Disable asm-operand-width warning for clang

Greg Kroah-Hartman
2018-11-26T10:54:36Z

From: Matthias Kaehlcke <mka@chromium.org>

clang raises 'asm-operand-widths' warnings in inline assembly code when
the size of an operand is < 64 bits and the operand width is unspecified.
Most warnings are raised in macros, i.e. the datatype of the operand may
vary.

Signed-off-by: Matthias Kaehlcke <mka@chromium.org>

nc: I trimmed the original commit message since I'm not a part of CrOS
and can't speak on their behalf.

To fix these warnings, it requires a fairly intrusive backport of
the sysreg conversion that Mark Rutland did in 4.9. I think
disabling the warning is smarter, similar to commit d41d0fe374d4
("turn off -Wattribute-alias") in this tree.

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm64/Makefile | 4 ++++
1 file changed, 4 insertions(+)

--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -56,6 +56,10 @@ else
TEXT_OFFSET := 0x00080000
endif

+ifeq ($(cc-name),clang)
+KBUILD_CFLAGS += $(call cc-disable-warning, asm-operand-widths)
+endif
+
# KASAN_SHADOW_OFFSET = VA_START + (1 << (VA_BITS - 3)) - (1 << 61)
# in 32-bit arithmetic
KASAN_SHADOW_OFFSET := $(shell printf "0x%08x00000000\n" $$(( \