diff options
author | Martin Liska <mliska@suse.cz> | 2019-05-23 12:12:01 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2019-05-23 10:12:01 +0000 |
commit | 832ece86e5a9f98f49571ed6407a8d93c4f50e18 (patch) | |
tree | a6b30518d5be13069c8276cda611649ee8be1e31 | |
parent | 02b73313044f66774df9b38eadc519d3d7ee7a1b (diff) | |
download | gcc-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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/gimplify.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/asan/pr90570.C | 18 |
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; +} |