summaryrefslogtreecommitdiff
path: root/gcc/asan.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2017-10-18 10:14:47 +0200
committerMartin Liska <marxin@gcc.gnu.org>2017-10-18 08:14:47 +0000
commit236ac44204c4a0f172751fad3221a8686e58bfc7 (patch)
tree3725d74c3a9dce2e6b7b2d1b0724a8dbd3b604c9 /gcc/asan.c
parent1b2944cbd4da300b142524fe259fc20140396692 (diff)
Do not put gimple stmt on an abnormal edge (PR sanitizer/82545).
2017-10-18 Martin Liska <mliska@suse.cz> PR sanitizer/82545 * asan.c (asan_expand_poison_ifn): Do not put gimple stmt on an abnormal edge. 2017-10-18 Martin Liska <mliska@suse.cz> PR sanitizer/82545 * gcc.dg/asan/pr82545.c: New test. From-SVN: r253845
Diffstat (limited to 'gcc/asan.c')
-rw-r--r--gcc/asan.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/asan.c b/gcc/asan.c
index 2aa0a795af2..99958ecc330 100644
--- a/gcc/asan.c
+++ b/gcc/asan.c
@@ -3400,6 +3400,10 @@ asan_expand_poison_ifn (gimple_stmt_iterator *iter,
{
edge e = gimple_phi_arg_edge (phi, i);
+ /* Do not insert on an edge we can't split. */
+ if (e->flags & EDGE_ABNORMAL)
+ continue;
+
if (call_to_insert == NULL)
call_to_insert = gimple_copy (call);