aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2014-12-09 11:58:51 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2014-12-09 11:58:51 +0000
commit85fd4c288ae10b75a5ccf48abf79e10b5d8a6d06 (patch)
tree3dc7f562ef1b368aa33bba5c8f65fe0b301d4f4e /gcc
parent60b6534a84cd08e403ed5d1f91def59b161e8424 (diff)
downloadgcc-85fd4c288ae10b75a5ccf48abf79e10b5d8a6d06.zip
gcc-85fd4c288ae10b75a5ccf48abf79e10b5d8a6d06.tar.gz
gcc-85fd4c288ae10b75a5ccf48abf79e10b5d8a6d06.tar.bz2
re PR tree-optimization/64199 (ICE: tree check: expected class 'constant', have 'binary' (plus_expr) in fold_binary_loc, at fold-const.c:10404 with -ffast-math -frounding-math)
2014-12-09 Richard Biener <rguenther@suse.de> PR middle-end/64199 * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P. * gcc.dg/torture/pr64199.c: New testcase. From-SVN: r218513
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/fold-const.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr64199.c8
4 files changed, 20 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4a5de9e..0997ef4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2014-12-09 Richard Biener <rguenther@suse.de>
+ PR middle-end/64199
+ * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
+
+2014-12-09 Richard Biener <rguenther@suse.de>
+
PR tree-optimization/64191
* tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
not relevant (nor are their uses).
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 94d1cbf..0c4fe40 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -10398,8 +10398,8 @@ fold_binary_loc (location_t loc,
/* Don't introduce overflows through reassociation. */
if (!any_overflows
- && ((lit0 && TREE_OVERFLOW (lit0))
- || (minus_lit0 && TREE_OVERFLOW (minus_lit0))))
+ && ((lit0 && TREE_OVERFLOW_P (lit0))
+ || (minus_lit0 && TREE_OVERFLOW_P (minus_lit0))))
return NULL_TREE;
if (minus_lit0)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 31f740d..fbd1136 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-12-09 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/64199
+ * gcc.dg/torture/pr64199.c: New testcase.
+
2014-12-09 Ilya Enkovich <ilya.enkovich@intel.com>
* gcc.dg/lto/lto.exp: Load mpx-dg.exp.
diff --git a/gcc/testsuite/gcc.dg/torture/pr64199.c b/gcc/testsuite/gcc.dg/torture/pr64199.c
new file mode 100644
index 0000000..e3f1002
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr64199.c
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math -frounding-math" } */
+
+float
+foo (void)
+{
+ return 1.1f + 2.2f + 2.2f;
+}