From 2ca1b6d009b194286c3ec91f9c51cc6b0a475458 Mon Sep 17 00:00:00 2001 From: Kito Cheng Date: Wed, 22 Jul 2020 14:50:40 +0800 Subject: 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. --- gcc/asan.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gcc/asan.c') diff --git a/gcc/asan.c b/gcc/asan.c index 9c9aa4c..0b471af 100644 --- a/gcc/asan.c +++ b/gcc/asan.c @@ -344,6 +344,13 @@ asan_shadow_offset () return asan_shadow_offset_value; } +/* Returns Asan shadow offset has been set. */ +bool +asan_shadow_offset_set_p () +{ + return asan_shadow_offset_computed; +} + alias_set_type asan_shadow_set = -1; /* Pointer types to 1, 2 or 4 byte integers in shadow memory. A separate -- cgit v1.1