From fb807d228e5fde581b92c8b5b6d5b9c18bf4ded6 Mon Sep 17 00:00:00 2001 From: ian Date: Tue, 21 Aug 2007 21:35:06 +0000 Subject: [PATCH] ./: 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 | 6 ++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/tree-ssa/pr33134.C | 21 +++++++++++++++++++++ gcc/tree-vrp.c | 2 +- 4 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/tree-ssa/pr33134.C diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e06f448a3bb..486b3d0fefb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-08-21 Ian Lance Taylor + + PR tree-optimization/33134 + * tree-vrp.c (adjust_range_with_scev): Call + set_value_range_to_value. + 2007-08-21 Aldy Hernandez * value-prof.h (gimple_remove_histogram_value): Remove duplicate diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9800a7f742d..3d3ed01b021 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-08-21 Ian Lance Taylor + + PR tree-optimization/33134 + * g++.dg/tree-ssa/pr33134.C: New test. + 2007-08-21 Nathan Froyd * 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 00000000000..43482c7fc04 --- /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 */ + +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 e1124b955d4..40d2264dfdd 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; } -- 2.11.4.GIT