PR target/96260 - KASAN should work even back-end not porting anything.
authorKito Cheng <kito.cheng@sifive.com>
Wed, 22 Jul 2020 06:50:40 +0000 (14:50 +0800)
committerKito Cheng <kito.cheng@sifive.com>
Thu, 23 Jul 2020 06:57:31 +0000 (14:57 +0800)
commit2ca1b6d009b194286c3ec91f9c51cc6b0a475458
treeaf63dcdcbc211febcb5323810b4a881e5a4f8a00
parent5029d42c4014ce8c9771ba7b8280d5e7770b6dee
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
gcc/asan.h
gcc/testsuite/gcc.target/riscv/pr91441.c
gcc/testsuite/gcc.target/riscv/pr96260.c [new file with mode: 0644]
gcc/toplev.c