OSDN Git Service

./:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 21 Aug 2007 21:35:06 +0000 (21:35 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127679 138bc75d-0d04-0410-961f-82ee72b054a4

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

index e06f448..486b3d0 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 9800a7f..3d3ed01 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 e1124b9..40d2264 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;
     }