PR target/91441 - Turn off -fsanitize=kernel-address if TARGET_ASAN_SHADOW_OFFSET is not implemented.
- -fsanitize=kernel-address will call targetm.asan_shadow_offset () at asan_shadow_offset, so it will crash if TARGET_ASAN_SHADOW_OFFSET is not implemented, that's mean -fsanitize=kernel-address is not supported for target without TARGET_ASAN_SHADOW_OFFSET implementation. gcc/ChangeLog: PR target/91441 * toplev.c (process_options): Check TARGET_ASAN_SHADOW_OFFSET is implemented for -fsanitize=kernel-address, and merge check logic with -fsanitize=address. testsuite/ChangeLog: PR target/91441 * gcc.target/riscv/pr91441.c: New. From-SVN: r274631
This commit is contained in:
parent
88898d1e1e
commit
6490e2556d
|
@ -1,3 +1,10 @@
|
|||
2019-08-19 Kito Cheng <kito.cheng@sifive.com>
|
||||
|
||||
PR target/91441
|
||||
* toplev.c (process_options): Check TARGET_ASAN_SHADOW_OFFSET is
|
||||
implemented for -fsanitize=kernel-address, and merge check logic
|
||||
with -fsanitize=address.
|
||||
|
||||
2019-08-18 Iain Sandoe <iain@sandoe.co.uk>
|
||||
|
||||
* config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2019-08-19 Kito Cheng <kito.cheng@sifive.com>
|
||||
|
||||
PR target/91441
|
||||
* gcc.target/riscv/pr91441.c: New.
|
||||
|
||||
2019-08-18 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/91485
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
/* PR target/91441 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "--param asan-stack=1 -fsanitize=kernel-address" } */
|
||||
|
||||
int *bar(int *);
|
||||
int *f( int a)
|
||||
{
|
||||
return bar(&a);
|
||||
}
|
||||
/* { dg-warning ".'-fsanitize=address' and '-fsanitize=kernel-address' are not supported for this target" "" { target *-*-* } 0 } */
|
10
gcc/toplev.c
10
gcc/toplev.c
|
@ -1744,7 +1744,7 @@ process_options (void)
|
|||
/* Address Sanitizer needs porting to each target architecture. */
|
||||
|
||||
if ((flag_sanitize & SANITIZE_ADDRESS)
|
||||
&& !FRAME_GROWS_DOWNWARD)
|
||||
&& (!FRAME_GROWS_DOWNWARD || targetm.asan_shadow_offset == NULL))
|
||||
{
|
||||
warning_at (UNKNOWN_LOCATION, 0,
|
||||
"%<-fsanitize=address%> and %<-fsanitize=kernel-address%> "
|
||||
|
@ -1752,14 +1752,6 @@ process_options (void)
|
|||
flag_sanitize &= ~SANITIZE_ADDRESS;
|
||||
}
|
||||
|
||||
if ((flag_sanitize & SANITIZE_USER_ADDRESS)
|
||||
&& targetm.asan_shadow_offset == NULL)
|
||||
{
|
||||
warning_at (UNKNOWN_LOCATION, 0,
|
||||
"%<-fsanitize=address%> not supported for this target");
|
||||
flag_sanitize &= ~SANITIZE_ADDRESS;
|
||||
}
|
||||
|
||||
/* Do not use IPA optimizations for register allocation if profiler is active
|
||||
or patchable function entries are inserted for run-time instrumentation
|
||||
or port does not emit prologue and epilogue as RTL. */
|
||||
|
|
Loading…
Reference in New Issue