Loading...
Searching...
No Matches
Go to the documentation of this file.
2#ifndef __LINUX_COMPILER_TYPES_H
3#error "Please do not include <linux/compiler-clang.h> directly, include <linux/compiler.h> instead."
9#define KASAN_ABI_VERSION 5
23#if __has_feature(address_sanitizer) && !defined(__SANITIZE_ADDRESS__)
24#define __SANITIZE_ADDRESS__
26#if __has_feature(hwaddress_sanitizer) && !defined(__SANITIZE_HWADDRESS__)
27#define __SANITIZE_HWADDRESS__
29#if __has_feature(thread_sanitizer) && !defined(__SANITIZE_THREAD__)
30#define __SANITIZE_THREAD__
36#ifdef __SANITIZE_HWADDRESS__
37#define __SANITIZE_ADDRESS__
40#ifdef __SANITIZE_ADDRESS__
41#define __no_sanitize_address \
42 __attribute__((no_sanitize("address", "hwaddress")))
44#define __no_sanitize_address
47#ifdef __SANITIZE_THREAD__
48#define __no_sanitize_thread \
49 __attribute__((no_sanitize("thread")))
51#define __no_sanitize_thread
54#if defined(CONFIG_ARCH_USE_BUILTIN_BSWAP)
55#define __HAVE_BUILTIN_BSWAP32__
56#define __HAVE_BUILTIN_BSWAP64__
57#define __HAVE_BUILTIN_BSWAP16__
60#if __has_feature(undefined_behavior_sanitizer)
62#define __no_sanitize_undefined \
63 __attribute__((no_sanitize("undefined")))
65#define __no_sanitize_undefined
68#if __has_feature(memory_sanitizer)
69#define __SANITIZE_MEMORY__
76#define __no_sanitize_memory __disable_sanitizer_instrumentation
85#define __no_kmsan_checks __attribute__((no_sanitize("kernel-memory")))
87#define __no_sanitize_memory
88#define __no_kmsan_checks
96#if __has_feature(coverage_sanitizer)
97#define __no_sanitize_coverage __attribute__((no_sanitize("coverage")))
99#define __no_sanitize_coverage
103#define __no_kstack_erase __no_sanitize_coverage
105#if __has_feature(shadow_call_stack)
106# define __noscs __attribute__((__no_sanitize__("shadow-call-stack")))
113#define __diag_clang(version, severity, s) \
114 __diag_clang_ ## version(__diag_clang_ ## severity s)
117#define __diag_clang_ignore ignored
118#define __diag_clang_warn warning
119#define __diag_clang_error error
121#define __diag_str1(s) #s
122#define __diag_str(s) __diag_str1(s)
123#define __diag(s) _Pragma(__diag_str(clang diagnostic s))
125#if CONFIG_CLANG_VERSION >= 230000
126#define __diag_clang_23(s) __diag(s)
128#define __diag_clang_23(s)
131#define __diag_clang_all(s) __diag(s)
133#define __diag_ignore_all(option, comment) \
134 __diag_clang(all, ignore, option)
143#define ASM_INPUT_G "ir"
144#define ASM_INPUT_RM "r"
145#define ASM_OUTPUT_RM "=r"
153#define CC_HAS_TYPEOF_UNQUAL (__clang_major__ > 19 || (__clang_major__ == 19 && __clang_minor__ > 0))