aboutsummaryrefslogtreecommitdiff
path: root/gcc/asan.h
diff options
context:
space:
mode:
authorKito Cheng <kito.cheng@sifive.com>2020-07-22 14:50:40 +0800
committerKito Cheng <kito.cheng@sifive.com>2020-07-23 14:57:31 +0800
commit2ca1b6d009b194286c3ec91f9c51cc6b0a475458 (patch)
treeaf63dcdcbc211febcb5323810b4a881e5a4f8a00 /gcc/asan.h
parent5029d42c4014ce8c9771ba7b8280d5e7770b6dee (diff)
downloadgcc-2ca1b6d009b194286c3ec91f9c51cc6b0a475458.zip
gcc-2ca1b6d009b194286c3ec91f9c51cc6b0a475458.tar.gz
gcc-2ca1b6d009b194286c3ec91f9c51cc6b0a475458.tar.bz2
PR target/96260 - KASAN should work even back-end not porting anything.
- Most KASAN function don't need any porting anything in back-end except asan stack protection. - However kernel will given shadow offset when enable asan stack protection, so eveything in KASAN can work if shadow offset is given. - Verified with x86 and risc-v. - Verified with RISC-V linux kernel. gcc/ChangeLog: PR target/96260 * asan.c (asan_shadow_offset_set_p): New. * asan.h (asan_shadow_offset_set_p): Ditto. * toplev.c (process_options): Allow -fsanitize=kernel-address even TARGET_ASAN_SHADOW_OFFSET not implemented, only check when asan stack protection is enabled. gcc/testsuite/ChangeLog: PR target/96260 * gcc.target/riscv/pr91441.c: Update warning message. * gcc.target/riscv/pr96260.c: New.
Diffstat (limited to 'gcc/asan.h')
-rw-r--r--gcc/asan.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/asan.h b/gcc/asan.h
index 9efd33f..114b457 100644
--- a/gcc/asan.h
+++ b/gcc/asan.h
@@ -129,6 +129,8 @@ asan_var_and_redzone_size (unsigned HOST_WIDE_INT size)
extern bool set_asan_shadow_offset (const char *);
+extern bool asan_shadow_offset_set_p ();
+
extern void set_sanitized_sections (const char *);
extern bool asan_sanitize_stack_p (void);