From b59e2a4903fa1ac8c3b34338a62b1e3fb15c3792 Mon Sep 17 00:00:00 2001 From: Max Ostapenko Date: Mon, 23 Nov 2015 11:15:13 +0200 Subject: libsanitizer merge from upstream r253555, compiler part. gcc/ * opts.c (finish_options): Allow -fsanitize-recover=address for userspace sanitization. * asan.c (asan_expand_check_ifn): Redefine recover_p. * doc/invoke.texi (fsanitize-recover): Update documentation. gcc/testsuite/ * c-c++-common/asan/halt_on_error-1.c: New test. * c-c++-common/asan/halt_on_error-2.c: Likewise. From-SVN: r230741 --- gcc/asan.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'gcc/asan.c') diff --git a/gcc/asan.c b/gcc/asan.c index 0df5e32..6d9a803 100644 --- a/gcc/asan.c +++ b/gcc/asan.c @@ -2533,9 +2533,11 @@ asan_expand_check_ifn (gimple_stmt_iterator *iter, bool use_calls) { gimple *g = gsi_stmt (*iter); location_t loc = gimple_location (g); - - bool recover_p - = (flag_sanitize & flag_sanitize_recover & SANITIZE_KERNEL_ADDRESS) != 0; + bool recover_p; + if (flag_sanitize & SANITIZE_USER_ADDRESS) + recover_p = (flag_sanitize_recover & SANITIZE_USER_ADDRESS) != 0; + else + recover_p = (flag_sanitize_recover & SANITIZE_KERNEL_ADDRESS) != 0; HOST_WIDE_INT flags = tree_to_shwi (gimple_call_arg (g, 0)); gcc_assert (flags < ASAN_CHECK_LAST); -- cgit v1.1