re PR tree-optimization/33134 (ICE in set_value_range, at tree-vrp.c:325)
authorIan Lance Taylor <iant@google.com>
Tue, 21 Aug 2007 21:35:06 +0000 (21:35 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 21 Aug 2007 21:35:06 +0000 (21:35 +0000)
./: PR tree-optimization/33134
* tree-vrp.c (adjust_range_with_scev): Call
set_value_range_to_value.
testsuite/:
PR tree-optimization/33134
* g++.dg/tree-ssa/pr33134.C: New test.

From-SVN: r127679

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/tree-ssa/pr33134.C [new file with mode: 0644]
gcc/tree-vrp.c

index e06f448a3bb52ea1ac1500f0f2609e88c8c4b1f1..486b3d0fefb50720bac97e444e1c64b467c25ac5 100644 (file)
@@ -1,3 +1,9 @@
+2007-08-21  Ian Lance Taylor  <iant@google.com>
+
+       PR tree-optimization/33134
+       * tree-vrp.c (adjust_range_with_scev): Call
+       set_value_range_to_value.
+
 2007-08-21  Aldy Hernandez  <aldyh@redhat.com>
 
        * value-prof.h (gimple_remove_histogram_value): Remove duplicate
index 9800a7f742def7f51f2586721194e29c69676345..3d3ed01b0210bfcd1a77087fc31c02bcdc0c1618 100644 (file)
@@ -1,3 +1,8 @@
+2007-08-21  Ian Lance Taylor  <iant@google.com>
+
+       PR tree-optimization/33134
+       * g++.dg/tree-ssa/pr33134.C: New test.
+
 2007-08-21  Nathan Froyd  <froydnj@codesourcery.com>
 
        * gcc.target/powerpc/spe-vector-memset.c: New testcase.
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr33134.C b/gcc/testsuite/g++.dg/tree-ssa/pr33134.C
new file mode 100644 (file)
index 0000000..43482c7
--- /dev/null
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+/* Used to crash in VRP.  */
+/* Testcase by Martin Michlmayr <tbm@cyrius.com> */
+
+class FXObject;
+class FXStream
+{
+  public:FXStream (const FXObject *cont = __null);
+  FXStream & operator<< (const unsigned char &v);
+};
+
+bool fxsaveGIF (FXStream &store)
+{
+  int bitsperpixel;
+  unsigned char c1;
+  c1 = 0x80;
+  c1 |= (bitsperpixel - 1) << 4;
+  store << c1;
+}
index e1124b955d4dd0d2ea39f3a04d8779f613d08604..40d2264dfdd00e35407855bd3c95ebd5ccae1476 100644 (file)
@@ -2641,7 +2641,7 @@ adjust_range_with_scev (value_range_t *vr, struct loop *loop, tree stmt,
   /* Like in PR19590, scev can return a constant function.  */
   if (is_gimple_min_invariant (chrec))
     {
-      set_value_range (vr, VR_RANGE, chrec, chrec, vr->equiv);
+      set_value_range_to_value (vr, chrec, vr->equiv);
       return;
     }