diff options
author | Ian Lance Taylor <iant@google.com> | 2007-08-21 21:35:06 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2007-08-21 21:35:06 +0000 |
commit | cdc6461235771760208599c71bf4226da032206c (patch) | |
tree | 098804a4e5c928e5b899665e47c37477b03613e1 /gcc | |
parent | 958ea87b6ac26c5c90e0e0f6a5cc6d30da382db0 (diff) | |
download | gcc-cdc6461235771760208599c71bf4226da032206c.zip gcc-cdc6461235771760208599c71bf4226da032206c.tar.gz gcc-cdc6461235771760208599c71bf4226da032206c.tar.bz2 |
re PR tree-optimization/33134 (ICE in set_value_range, at tree-vrp.c:325)
./: 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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/tree-ssa/pr33134.C | 21 | ||||
-rw-r--r-- | gcc/tree-vrp.c | 2 |
4 files changed, 33 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e06f448..486b3d0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9800a7f..3d3ed01 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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 index 0000000..43482c7 --- /dev/null +++ b/gcc/testsuite/g++.dg/tree-ssa/pr33134.C @@ -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; +} diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index e1124b9..40d2264 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -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; } |