]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/internal-fn.cc
Move inlining of Asan memory checks to sanopt pass.
authorYury Gribov <y.gribov@samsung.com>
Mon, 11 Aug 2014 06:12:12 +0000 (06:12 +0000)
committerYury Gribov <ygribov@gcc.gnu.org>
Mon, 11 Aug 2014 06:12:12 +0000 (06:12 +0000)
commitc62ccb9a0a070057ec2ab65705c22e20cac85b5a
tree6826f489d7504e14431774d4f067f4d6a123551a
parentb78475cf7322cdce66bae717ee5768baabe8f8d6
Move inlining of Asan memory checks to sanopt pass.

Change asan-instrumentation-with-call-threshold to more closely match LLVM.

2014-08-11  Yury Gribov  <y.gribov@samsung.com>

gcc/
* asan.c (asan_check_flags): New enum.
(build_check_stmt_with_calls): Removed function.
(build_check_stmt): Split inlining logic to
asan_expand_check_ifn.
(instrument_derefs): Rename parameter.
(instrument_mem_region_access): Rename parameter.
(instrument_strlen_call): Likewise.
(asan_expand_check_ifn): New function.
(asan_instrument): Remove old code.
(pass_sanopt::execute): Change handling of
asan-instrumentation-with-call-threshold.
(asan_clear_shadow): Fix formatting.
(asan_function_start): Likewise.
(asan_emit_stack_protection): Likewise.
* doc/invoke.texi (asan-instrumentation-with-call-threshold):
Update description.
* internal-fn.c (expand_ASAN_CHECK): New function.
* internal-fn.def (ASAN_CHECK): New internal function.
* params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
Update description.
(PARAM_ASAN_USE_AFTER_RETURN): Likewise.
* tree.c: Small comment fix.

gcc/testsuite/
* c-c++-common/asan/inc.c: Update test.
* c-c++-common/asan/instrument-with-calls-2.c: Likewise.
* c-c++-common/asan/no-redundant-instrumentation-1.c: Likewise.
* c-c++-common/asan/no-redundant-instrumentation-2.c: Likewise.
* c-c++-common/asan/no-redundant-instrumentation-3.c: Likewise.
* c-c++-common/asan/no-redundant-instrumentation-4.c: Likewise.
* 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/no-redundant-instrumentation-9.c: Likewise.

From-SVN: r213807
19 files changed:
gcc/ChangeLog
gcc/asan.c
gcc/doc/invoke.texi
gcc/internal-fn.c
gcc/internal-fn.def
gcc/params.def
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/asan/inc.c
gcc/testsuite/c-c++-common/asan/instrument-with-calls-2.c
gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-1.c
gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-2.c
gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-3.c
gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-4.c
gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-5.c
gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-6.c
gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-7.c
gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-8.c
gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-9.c
gcc/tree.c