Hi. I'm sending one more patch that I've tested.
Martin
>From 3a0412967ede61515ce59230580558f5531e63f6 Mon Sep 17 00:00:00 2001 From: marxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Thu, 23 May 2019 10:12:01 +0000 Subject: [PATCH] Backport r271548 gcc/ChangeLog: 2019-05-23 Martin Liska <mli...@suse.cz> PR sanitizer/90570 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target expression similarly to gimplify_decl_expr. gcc/testsuite/ChangeLog: 2019-05-23 Martin Liska <mli...@suse.cz> PR sanitizer/90570 * g++.dg/asan/pr90570.C: New test. --- gcc/gimplify.c | 1 + gcc/testsuite/g++.dg/asan/pr90570.C | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 gcc/testsuite/g++.dg/asan/pr90570.C diff --git a/gcc/gimplify.c b/gcc/gimplify.c index bdb15a8fd14..2971293a720 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -6653,6 +6653,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/g++.dg/asan/pr90570.C b/gcc/testsuite/g++.dg/asan/pr90570.C new file mode 100644 index 00000000000..c2366905516 --- /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; +} -- 2.21.0