From 3f1dfb4145288595055e9fd06afa8a66fae4d86d Mon Sep 17 00:00:00 2001
From: Kazu Hirata <kazu@codesourcery.com>
Date: Mon, 26 Sep 2005 01:28:50 +0000
Subject: [PATCH] re PR middle-end/23960 (ICE in compare_values in VRP)

gcc/
	PR tree-optimization/23960
	* fold-const.c (fold_binary): Use op0 and op1 instead of arg0
	and arg1 if we are passing them to fold_build2.

gcc/testsuite/
	PR tree-optimization/23960
	* gcc.c-torture/compile/pr23960.c: New.

From-SVN: r104634
---
 gcc/ChangeLog                                 |  5 +++++
 gcc/fold-const.c                              |  2 +-
 gcc/testsuite/ChangeLog                       |  5 +++++
 gcc/testsuite/gcc.c-torture/compile/pr23960.c | 12 ++++++++++++
 4 files changed, 23 insertions(+), 1 deletion(-)
 create mode 100644 gcc/testsuite/gcc.c-torture/compile/pr23960.c

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d64329774a83..44cb1b0bb578 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-09-25  Kazu Hirata  <kazu@codesourcery.com>
+
+	* fold-const.c (fold_binary): Use op0 and op1 instead of arg0
+	and arg1 if we are passing them to fold_build2.
+
 2005-09-25  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	PR 23828
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 4b41adfc59f9..0190c322dc59 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -9285,7 +9285,7 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
 		  return omit_one_operand (type, integer_one_node, arg0);
 
 		case GT_EXPR:
-		  return fold_build2 (NE_EXPR, type, arg0, arg1);
+		  return fold_build2 (NE_EXPR, type, op0, op1);
 
 		default:
 		  break;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0c43597323e8..2749585def4d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-09-25  Kazu Hirata  <kazu@codesourcery.com>
+
+	PR tree-optimization/23960
+	* gcc.c-torture/compile/pr23960.c: New.
+
 2005-09-23  Paul Thomas  <pault@gcc.gnu.org>
 
 	PR fortran/16861
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr23960.c b/gcc/testsuite/gcc.c-torture/compile/pr23960.c
new file mode 100644
index 000000000000..5ca0562af1e3
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr23960.c
@@ -0,0 +1,12 @@
+/* PR tree-optimization/23960
+   fold-const.c used to construct a comparison node with one pointer
+   operand and one non-pointer operand.  */
+
+void abort (void) __attribute__ ((noreturn));
+
+void
+foo (char *d, unsigned long int n)
+{ 
+  if (d + n > d)
+    abort ();
+} 
-- 
GitLab