diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-10-17 15:21:34 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-10-17 15:21:34 +0000 |
commit | 9b9486117f0981d2a722c072d87b268e60d5e930 (patch) | |
tree | 88bc5fc15de1c5a194b54b61591c61b5855ac284 | |
parent | 4084916f0c309a11997dc4686ef092f0a4406f43 (diff) | |
download | ppe42-gcc-9b9486117f0981d2a722c072d87b268e60d5e930.tar.gz ppe42-gcc-9b9486117f0981d2a722c072d87b268e60d5e930.zip |
* asan.c (instrument_derefs): Allow instrumentation of odd-sized
accesses even for -fsanitize=address.
(execute_sanopt): Only allow use_calls for -fsanitize=kernel-address.
* c-c++-common/asan/instrument-with-calls-1.c: Add
-fno-sanitize=address -fsanitize=kernel-address to dg-options.
* c-c++-common/asan/instrument-with-calls-2.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@216408 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/asan.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/asan/instrument-with-calls-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/asan/instrument-with-calls-2.c | 2 |
5 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a5b37aafeb8..32ba5954eb9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2014-10-17 Jakub Jelinek <jakub@redhat.com> + * asan.c (instrument_derefs): Allow instrumentation of odd-sized + accesses even for -fsanitize=address. + (execute_sanopt): Only allow use_calls for -fsanitize=kernel-address. + PR tree-optimization/63302 * tree-ssa-reassoc.c (optimize_range_tests_xor, optimize_range_tests_diff): Use !integer_pow2p () instead of diff --git a/gcc/asan.c b/gcc/asan.c index db4e3a0e0ba..7c27fe70d67 100644 --- a/gcc/asan.c +++ b/gcc/asan.c @@ -1707,10 +1707,6 @@ instrument_derefs (gimple_stmt_iterator *iter, tree t, size_in_bytes = int_size_in_bytes (type); if (size_in_bytes <= 0) return; - if ((flag_sanitize & SANITIZE_USER_ADDRESS) != 0 - && ((size_in_bytes & (size_in_bytes - 1)) != 0 - || (unsigned HOST_WIDE_INT) size_in_bytes - 1 >= 16)) - return; HOST_WIDE_INT bitsize, bitpos; tree offset; @@ -2781,6 +2777,7 @@ execute_sanopt (void) } bool use_calls = ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD < INT_MAX + && (flag_sanitize & SANITIZE_KERNEL_ADDRESS) && asan_num_accesses >= ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD; FOR_EACH_BB_FN (bb, cfun) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b19250749e7..36399624b23 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2014-10-17 Jakub Jelinek <jakub@redhat.com> + * c-c++-common/asan/instrument-with-calls-1.c: Add + -fno-sanitize=address -fsanitize=kernel-address to dg-options. + * c-c++-common/asan/instrument-with-calls-2.c: Likewise. + PR tree-optimization/63302 * gcc.c-torture/execute/pr63302.c: New test. diff --git a/gcc/testsuite/c-c++-common/asan/instrument-with-calls-1.c b/gcc/testsuite/c-c++-common/asan/instrument-with-calls-1.c index 80f76205760..32e32a600cb 100644 --- a/gcc/testsuite/c-c++-common/asan/instrument-with-calls-1.c +++ b/gcc/testsuite/c-c++-common/asan/instrument-with-calls-1.c @@ -1,5 +1,5 @@ /* { dg-do assemble } */ -/* { dg-options "--param asan-instrumentation-with-call-threshold=0 -save-temps" } */ +/* { dg-options "-fno-sanitize=address -fsanitize=kernel-address --param asan-instrumentation-with-call-threshold=0 -save-temps" } */ void f(char *a, int *b) { *b = *a; diff --git a/gcc/testsuite/c-c++-common/asan/instrument-with-calls-2.c b/gcc/testsuite/c-c++-common/asan/instrument-with-calls-2.c index 04fdad09d72..1b361e6270d 100644 --- a/gcc/testsuite/c-c++-common/asan/instrument-with-calls-2.c +++ b/gcc/testsuite/c-c++-common/asan/instrument-with-calls-2.c @@ -1,5 +1,5 @@ /* { dg-do assemble } */ -/* { dg-options "--param asan-instrumentation-with-call-threshold=1 -save-temps" } */ +/* { dg-options "-fno-sanitize=address -fsanitize=kernel-address --param asan-instrumentation-with-call-threshold=1 -save-temps" } */ int x; |