diff options
author | Jakub Jelinek <jakub@redhat.com> | 2013-02-16 10:32:56 +0100 |
---|---|---|
committer | Dodji Seketeli <dodji@gcc.gnu.org> | 2013-02-16 10:32:56 +0100 |
commit | b41288b3a57a382c7e06ef0f847584f06583ceb4 (patch) | |
tree | 8d20d0d3ec1ed8a33b52873e900b4acbeff14e5c /gcc/cfgloop.c | |
parent | 4d0648ac8ff3df5e4525fe8da00906493742c72c (diff) | |
download | gcc-b41288b3a57a382c7e06ef0f847584f06583ceb4.zip gcc-b41288b3a57a382c7e06ef0f847584f06583ceb4.tar.gz gcc-b41288b3a57a382c7e06ef0f847584f06583ceb4.tar.bz2 |
[asan] Fix for PR asan/56330
gcc/
* asan.c (get_mem_refs_of_builtin_call): White space and style
cleanup.
(instrument_mem_region_access): Do not forget to always put
instrumentation of the of 'base' and 'base + len' in a "if (len !=
0) statement, even for cases where either 'base' or 'base + len'
are not instrumented -- because they have been previously
instrumented. Simplify the logic by putting all the statements
instrument 'base + len' inside a sequence, and then insert that
sequence right before the current insertion point. Then, to
instrument 'base + len', just get an iterator on that statement.
And do not forget to update the pointer to iterator the function
received as argument.
gcc/testsuite/
* c-c++-common/asan/no-redundant-instrumentation-4.c: New test file.
* c-c++-common/asan/no-redundant-instrumentation-5.c: Likewise.
* c-c++-common/asan/no-redundant-instrumentation-6.c: Likewise.
* c-c++-common/asan/no-redundant-instrumentation-7.c: Likewise.
* c-c++-common/asan/no-redundant-instrumentation-8.c: Likewise.
* c-c++-common/asan/pr56330.c: Likewise.
* c-c++-common/asan/no-redundant-instrumentation-1.c (test1):
Ensure the size argument of __builtin_memcpy is a constant.
Co-Authored-By: Dodji Seketeli <dodji@redhat.com>
From-SVN: r196102
Diffstat (limited to 'gcc/cfgloop.c')
0 files changed, 0 insertions, 0 deletions