aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-tail-merge.c
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2017-07-03 07:20:49 +0000
committerTom de Vries <vries@gcc.gnu.org>2017-07-03 07:20:49 +0000
commit0bbfd5540d15befe675f8bac6a5aa55df9064436 (patch)
tree6b9e26dc612c92752cb02a9f4d674fe6ced5563f /gcc/tree-ssa-tail-merge.c
parent37623e6ccce9722b4a780bfc24191fc4b0236d23 (diff)
downloadgcc-0bbfd5540d15befe675f8bac6a5aa55df9064436.zip
gcc-0bbfd5540d15befe675f8bac6a5aa55df9064436.tar.gz
gcc-0bbfd5540d15befe675f8bac6a5aa55df9064436.tar.bz2
Fix sigsegv in find_same_succ_bb
2017-07-03 Tom de Vries <tom@codesourcery.com> PR tree-optimization/81192 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle BB_SAME_SUCC (bb) == NULL. * gcc.dg/pr81192.c: New test. From-SVN: r249893
Diffstat (limited to 'gcc/tree-ssa-tail-merge.c')
-rw-r--r--gcc/tree-ssa-tail-merge.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-ssa-tail-merge.c b/gcc/tree-ssa-tail-merge.c
index db836f7..e88072c 100644
--- a/gcc/tree-ssa-tail-merge.c
+++ b/gcc/tree-ssa-tail-merge.c
@@ -809,6 +809,9 @@ static void
same_succ_flush_bb (basic_block bb)
{
same_succ *same = BB_SAME_SUCC (bb);
+ if (! same)
+ return;
+
BB_SAME_SUCC (bb) = NULL;
if (bitmap_single_bit_set_p (same->bbs))
same_succ_htab->remove_elt_with_hash (same, same->hashval);