On Thu, Dec 06, 2018 at 01:24:23PM +0100, Andrey Konovalov wrote: > diff --git a/include/linux/compiler-clang.h b/include/linux/compiler-clang.h > index 3e7dafb3ea80..39f668d5066b 100644 > --- a/include/linux/compiler-clang.h > +++ b/include/linux/compiler-clang.h > @@ -16,9 +16,13 @@ > /* all clang versions usable with the kernel support KASAN ABI version 5 */ > #define KASAN_ABI_VERSION 5 > > +#if __has_feature(address_sanitizer) || __has_feature(hwaddress_sanitizer) > /* emulate gcc's __SANITIZE_ADDRESS__ flag */ > -#if __has_feature(address_sanitizer) > #define __SANITIZE_ADDRESS__ > +#define __no_sanitize_address \ > + __attribute__((no_sanitize("address", "hwaddress"))) > +#else > +#define __no_sanitize_address > #endif > > /* > diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h > index 2010493e1040..5776da43da97 100644 > --- a/include/linux/compiler-gcc.h > +++ b/include/linux/compiler-gcc.h > @@ -143,6 +143,12 @@ > #define KASAN_ABI_VERSION 3 > #endif > > +#if __has_attribute(__no_sanitize_address__) > +#define __no_sanitize_address __attribute__((no_sanitize_address)) > +#else > +#define __no_sanitize_address > +#endif Not really important but it's the name with leading and trailing underscores that is tested with __has_attribute() but then it's the naked 'no_sanitize_address' that is used in the attribute. -- Luc