aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-03-27 12:13:55 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-03-27 12:13:55 +0000
commit18f5009ec8e87ada5228ff03f18264e93268e00f (patch)
tree11c737ef9d022bba60acee27f37029910ad4e66a
parent7198b3c4fb685c4eb4e90259e0d01b8a6f15b2d3 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr85082.f9014
-rw-r--r--gcc/tree-ssa-sccvn.c2
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;