aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgexpand.c
diff options
context:
space:
mode:
authorMaxim Ostapenko <m.ostapenko@samsung.com>2017-07-06 16:05:00 +0000
committerMaxim Ostapenko <chefmax@gcc.gnu.org>2017-07-06 19:05:00 +0300
commit5094f7d540ff2f8ccbb3b78a0962a07ffa5960cb (patch)
treeabe11990d7fbf767d605ed325548aeca19664586 /gcc/cfgexpand.c
parente3174bdf35c172f69daf08350401aa177f8f1498 (diff)
downloadgcc-5094f7d540ff2f8ccbb3b78a0962a07ffa5960cb.zip
gcc-5094f7d540ff2f8ccbb3b78a0962a07ffa5960cb.tar.gz
gcc-5094f7d540ff2f8ccbb3b78a0962a07ffa5960cb.tar.bz2
asan.h (asan_sanitize_allocas_p): Declare.
gcc/ * asan.h (asan_sanitize_allocas_p): Declare. * asan.c (asan_sanitize_allocas_p): New function. (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p. (handle_builtin_alloca): Likewise. * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff if !asan_sanitize_allocas_p. * params.def (asan-instrument-allocas): Add new option. * params.h (ASAN_PROTECT_ALLOCAS): Define. * opts.c (common_handle_option): Disable allocas sanitization for KASan by default. gcc/testsuite/ * c-c++-common/asan/kasan-alloca-1.c: New test. * c-c++-common/asan/kasan-alloca-2.c: Likewise. From-SVN: r250032
Diffstat (limited to 'gcc/cfgexpand.c')
-rw-r--r--gcc/cfgexpand.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index dd7277f..c427a89 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -2241,7 +2241,7 @@ expand_used_vars (void)
expand_stack_vars (NULL, &data);
}
- if ((flag_sanitize & SANITIZE_ADDRESS) && cfun->calls_alloca)
+ if (asan_sanitize_allocas_p () && cfun->calls_alloca)
var_end_seq = asan_emit_allocas_unpoison (virtual_stack_dynamic_rtx,
virtual_stack_vars_rtx,
var_end_seq);