aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-05-23 12:12:01 +0200
committerMartin Liska <marxin@gcc.gnu.org>2019-05-23 10:12:01 +0000
commit832ece86e5a9f98f49571ed6407a8d93c4f50e18 (patch)
treea6b30518d5be13069c8276cda611649ee8be1e31 /gcc
parent02b73313044f66774df9b38eadc519d3d7ee7a1b (diff)
downloadgcc-832ece86e5a9f98f49571ed6407a8d93c4f50e18.zip
gcc-832ece86e5a9f98f49571ed6407a8d93c4f50e18.tar.gz
gcc-832ece86e5a9f98f49571ed6407a8d93c4f50e18.tar.bz2
Do not instrument static target_expr for use-after-scope (PR sanitizer/90570).
2019-05-23 Martin Liska <mliska@suse.cz> PR sanitizer/90570 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target expression similarly to gimplify_decl_expr. 2019-05-23 Martin Liska <mliska@suse.cz> PR sanitizer/90570 * g++.dg/asan/pr90570.C: New test. From-SVN: r271548
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/gimplify.c1
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/asan/pr90570.C18
4 files changed, 30 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 45294c2..2ccb803 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2019-05-23 Martin Liska <mliska@suse.cz>
+
+ PR sanitizer/90570
+ * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
+ expression similarly to gimplify_decl_expr.
+
2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
* cse.c (cse_dump_path): s/dump_file/f.
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 6905165..8337b36 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -6668,6 +6668,7 @@ gimplify_target_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p)
}
if (asan_poisoned_variables
&& DECL_ALIGN (temp) <= MAX_SUPPORTED_STACK_ALIGNMENT
+ && !TREE_STATIC (temp)
&& dbg_cnt (asan_use_after_scope)
&& !gimplify_omp_ctxp)
{
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e422d71..b34d1cc 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-05-23 Martin Liska <mliska@suse.cz>
+
+ PR sanitizer/90570
+ * g++.dg/asan/pr90570.C: New test.
+
2019-05-23 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/opt78.ad[sb]: New test.
diff --git a/gcc/testsuite/g++.dg/asan/pr90570.C b/gcc/testsuite/g++.dg/asan/pr90570.C
new file mode 100644
index 0000000..c236690
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asan/pr90570.C
@@ -0,0 +1,18 @@
+/* PR sanitizer/90570 */
+/* { dg-do run } */
+
+#include <vector>
+
+struct stru
+{
+ std::vector<int> v{1,2,3,4};
+ int i{5};
+};
+
+int main()
+{
+ stru s1;
+ stru s2;
+
+ return 0;
+}