From 20d69fbf4076add09df363ffb9d03cd243f8190d Mon Sep 17 00:00:00 2001
From: marxin <mliska@suse.cz>
Date: Tue, 4 Jul 2017 09:22:23 +0200
Subject: [PATCH] Enable addressable params sanitization with --param
asan-stack=1.
gcc/ChangeLog:
2017-07-04 Martin Liska <mliska@suse.cz>
PR sanitizer/81040
* sanopt.c (sanitize_rewrite_addressable_params): Mark the
newly created variable as DECL_IGNORED_P.
gcc/testsuite/ChangeLog:
2017-07-04 Martin Liska <mliska@suse.cz>
PR sanitizer/81040
* g++.dg/asan/function-argument-1.C: Run the test-case w/o
use-after-scope sanitization.
---
gcc/sanopt.c | 2 +-
gcc/testsuite/g++.dg/asan/function-argument-1.C | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
@@ -905,7 +905,7 @@ sanitize_rewrite_addressable_params (function *fun)
tree var = build_decl (DECL_SOURCE_LOCATION (arg),
VAR_DECL, DECL_NAME (arg), type);
TREE_ADDRESSABLE (var) = 1;
- DECL_ARTIFICIAL (var) = 1;
+ DECL_IGNORED_P (var) = 1;
gimple_add_tmp_var (var);
@@ -1,5 +1,6 @@
// { dg-do run }
// { dg-shouldfail "asan" }
+// { dg-options "-fsanitize=address -fno-sanitize-address-use-after-scope" }
struct A
{
--
2.13.2