From b5bbe47bb37addb3c5b6c6065a28fa44953ed351 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 20 Sep 2016 12:20:37 +0000 Subject: re PR tree-optimization/77646 (GCC Segfault with -O3) 2016-09-20 Richard Biener PR tree-optimization/77646 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number a VDEF. * gcc.dg/torture/pr77646.c: New testcase. From-SVN: r240261 --- gcc/tree-ssa-sccvn.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gcc/tree-ssa-sccvn.c') diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c index e120b4f..bf5e97a 100644 --- a/gcc/tree-ssa-sccvn.c +++ b/gcc/tree-ssa-sccvn.c @@ -3470,6 +3470,10 @@ visit_reference_op_call (tree lhs, gcall *stmt) { if (vnresult->result_vdef && vdef) changed |= set_ssa_val_to (vdef, vnresult->result_vdef); + else if (vdef) + /* If the call was discovered to be pure or const reflect + that as far as possible. */ + changed |= set_ssa_val_to (vdef, vuse_ssa_val (gimple_vuse (stmt))); if (!vnresult->result && lhs) vnresult->result = lhs; -- cgit v1.1