use-after-scope: handle writes to a poisoned variable
2017-01-23 Martin Liska <mliska@suse.cz> * gcc.dg/asan/use-after-scope-10.c: New test. * gcc.dg/asan/use-after-scope-11.c: New test. * g++.dg/asan/use-after-scope-5.C: New test. 2017-01-23 Jakub Jelinek <jakub@redhat.com> Martin Liska <mliska@suse.cz> * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE. * asan.c (asan_expand_poison_ifn): Support stores and use appropriate ASAN report function. * internal-fn.c (expand_ASAN_POISON_USE): New function. * internal-fn.def (ASAN_POISON_USE): Declare. * tree-into-ssa.c (maybe_add_asan_poison_write): New function. (maybe_register_def): Create ASAN_POISON_USE when sanitizing. * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove ASAN_POISON calls w/o LHS. * tree-ssa.c (execute_update_addresses_taken): Create clobber for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS from ASAN_MARK (POISON, &x, ...) coming to a PHI node. * gimplify.c (asan_poison_variables): Add attribute use_after_scope_memory to variables that really needs to live in memory. * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when having the attribute. From-SVN: r244793
Showing
- gcc/ChangeLog 21 additions, 0 deletionsgcc/ChangeLog
- gcc/asan.c 12 additions, 7 deletionsgcc/asan.c
- gcc/asan.h 2 additions, 0 deletionsgcc/asan.h
- gcc/gimplify.c 15 additions, 2 deletionsgcc/gimplify.c
- gcc/internal-fn.c 8 additions, 0 deletionsgcc/internal-fn.c
- gcc/internal-fn.def 1 addition, 0 deletionsgcc/internal-fn.def
- gcc/testsuite/ChangeLog 6 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/g++.dg/asan/use-after-scope-5.C 23 additions, 0 deletionsgcc/testsuite/g++.dg/asan/use-after-scope-5.C
- gcc/testsuite/gcc.dg/asan/use-after-scope-10.c 22 additions, 0 deletionsgcc/testsuite/gcc.dg/asan/use-after-scope-10.c
- gcc/testsuite/gcc.dg/asan/use-after-scope-11.c 30 additions, 0 deletionsgcc/testsuite/gcc.dg/asan/use-after-scope-11.c
- gcc/tree-into-ssa.c 26 additions, 1 deletiongcc/tree-into-ssa.c
- gcc/tree-ssa-dce.c 12 additions, 4 deletionsgcc/tree-ssa-dce.c
- gcc/tree-ssa.c 14 additions, 1 deletiongcc/tree-ssa.c
Loading
Please register or sign in to comment