re PR middle-end/35823 (verify_gimple fails on taking 'Size of a String subprogram...
authorRichard Guenther <rguenther@suse.de>
Fri, 4 Apr 2008 11:29:11 +0000 (11:29 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 4 Apr 2008 11:29:11 +0000 (11:29 +0000)
2008-04-04  Richard Guenther  <rguenther@suse.de>

PR middle-end/35823
* fold-const.c (optimize_minmax_comparison): Use the correct
type for the constant in the simplified comparison.

* gnat.dg/pr35823.adb: New testcase.

From-SVN: r133893

gcc/ChangeLog
gcc/fold-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/pr35823.adb [new file with mode: 0644]

index edda2659b287bebec69694fb4bf3cbc2840c39e5..8e8c2155ac6dcbbcbb6217ba9b0d921c8a50d296 100644 (file)
@@ -1,3 +1,9 @@
+2008-04-04  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/35823
+       * fold-const.c (optimize_minmax_comparison): Use the correct
+       type for the constant in the simplified comparison.
+
 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
 
        * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
index 14470c5fd12e16134017d0c9de03d2418456b46b..ef95ae3d4a54db07b1a0a709392acde0c257feab 100644 (file)
@@ -5547,7 +5547,7 @@ optimize_minmax_comparison (enum tree_code code, tree type, tree op0, tree op1)
 {
   tree arg0 = op0;
   enum tree_code op_code;
-  tree comp_const = op1;
+  tree comp_const;
   tree minmax_const;
   int consts_equal, consts_lt;
   tree inner;
@@ -5556,6 +5556,7 @@ optimize_minmax_comparison (enum tree_code code, tree type, tree op0, tree op1)
 
   op_code = TREE_CODE (arg0);
   minmax_const = TREE_OPERAND (arg0, 1);
+  comp_const = fold_convert (TREE_TYPE (arg0), op1);
   consts_equal = tree_int_cst_equal (minmax_const, comp_const);
   consts_lt = tree_int_cst_lt (minmax_const, comp_const);
   inner = TREE_OPERAND (arg0, 0);
index f3b7b6fa26521e1c73d3e9154ed27c8f4551cc93..1812cd2f53e79c81ab26f2a8a78a6cb5a654e28b 100644 (file)
@@ -1,3 +1,8 @@
+2008-04-04  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/35823
+       * gnat.dg/pr35823.adb: New testcase.
+
 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
 
        PR c/35712
diff --git a/gcc/testsuite/gnat.dg/pr35823.adb b/gcc/testsuite/gnat.dg/pr35823.adb
new file mode 100644 (file)
index 0000000..e882aa3
--- /dev/null
@@ -0,0 +1,6 @@
+procedure pr35823 (Arg : in String) is
+   Size : constant Natural := Arg'Size;
+begin
+   null;
+end pr35823;
+