aboutsummaryrefslogtreecommitdiff
path: root/gcc/opts.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/opts.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/opts.c')
-rw-r--r--gcc/opts.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/opts.c b/gcc/opts.c
index 7460c2b..7555ed5 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -1909,6 +1909,9 @@ common_handle_option (struct gcc_options *opts,
opts_set->x_param_values);
maybe_set_param_value (PARAM_ASAN_STACK, 0, opts->x_param_values,
opts_set->x_param_values);
+ maybe_set_param_value (PARAM_ASAN_PROTECT_ALLOCAS, 0,
+ opts->x_param_values,
+ opts_set->x_param_values);
maybe_set_param_value (PARAM_ASAN_USE_AFTER_RETURN, 0,
opts->x_param_values,
opts_set->x_param_values);