diff options
author | Richard Biener <rguenther@suse.de> | 2018-03-27 12:13:55 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-03-27 12:13:55 +0000 |
commit | 18f5009ec8e87ada5228ff03f18264e93268e00f (patch) | |
tree | 11c737ef9d022bba60acee27f37029910ad4e66a | |
parent | 7198b3c4fb685c4eb4e90259e0d01b8a6f15b2d3 (diff) | |
download | gcc-18f5009ec8e87ada5228ff03f18264e93268e00f.zip gcc-18f5009ec8e87ada5228ff03f18264e93268e00f.tar.gz gcc-18f5009ec8e87ada5228ff03f18264e93268e00f.tar.bz2 |
re PR tree-optimization/85082 (ICE with -Ofast in vn_reference_insert_pieces, at tree-ssa-sccvn.c:2624)
2018-03-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/85082
* tree-ssa-sccvn.c (vn_reference_lookup_or_insert_for_pieces):
Valueize the VUSE.
* gfortran.dg/pr85082.f90: New testcase.
From-SVN: r258877
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr85082.f90 | 14 | ||||
-rw-r--r-- | gcc/tree-ssa-sccvn.c | 2 |
4 files changed, 26 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e4f0ff5..55c1f27 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-03-27 Richard Biener <rguenther@suse.de> + + PR tree-optimization/85082 + * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_for_pieces): + Valueize the VUSE. + 2018-03-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> * config.gcc (aarch64*-*-linux*): New TARGET_DEFAULT_ASYNC_UNWIND_TABLES diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b6517f4..06d08aa 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-03-27 Richard Biener <rguenther@suse.de> + + PR tree-optimization/85082 + * gfortran.dg/pr85082.f90: New testcase. + 2018-03-27 Chenghua Xu <paul.hua.gm@gmail.com> * gcc.target/mips/umips-stroe16-2.c: Change "length = 2" diff --git a/gcc/testsuite/gfortran.dg/pr85082.f90 b/gcc/testsuite/gfortran.dg/pr85082.f90 new file mode 100644 index 0000000..13fff37 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr85082.f90 @@ -0,0 +1,14 @@ +! { dg-do compile } +! { dg-options "-Ofast" } +program p + real(4) :: a, b + integer(4) :: n, m + equivalence (a, n) + a = 1024.0 + m = 8 + a = 1024.0 + b = set_exponent(a, m) + n = 8 + a = f(a, n) + b = set_exponent(a, m) +end diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c index 9844bbb..fea452b 100644 --- a/gcc/tree-ssa-sccvn.c +++ b/gcc/tree-ssa-sccvn.c @@ -1631,7 +1631,7 @@ vn_reference_lookup_or_insert_for_pieces (tree vuse, vn_reference_s vr1; vn_reference_t result; unsigned value_id; - vr1.vuse = vuse; + vr1.vuse = vuse ? SSA_VAL (vuse) : NULL_TREE; vr1.operands = operands; vr1.type = type; vr1.set = set; |