diff options
| author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-06-09 16:28:31 +0000 |
|---|---|---|
| committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-06-09 16:28:31 +0000 |
| commit | 6d02409cc89c73bcb84077c2cefe1a0c8bf39601 (patch) | |
| tree | 8bb4c1810d65b5f93973d77fd9499addb7a3e0be | |
| parent | be21d64ca8f36ca14adc881d88212e639d26a3b1 (diff) | |
| download | ppe42-gcc-6d02409cc89c73bcb84077c2cefe1a0c8bf39601.tar.gz ppe42-gcc-6d02409cc89c73bcb84077c2cefe1a0c8bf39601.zip | |
./:
PR tree-optimization/32169
* tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
CONVERT_EXPR, check whether min and max both converted to an
overflow infinity representation.
testsuite/:
PR tree-optimization/32169
* gcc.c-torture/compile/pr32169.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125591 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr32169.c | 17 | ||||
| -rw-r--r-- | gcc/tree-vrp.c | 2 |
4 files changed, 31 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 21546658630..dbb24474172 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2007-06-09 Ian Lance Taylor <iant@google.com> + + PR tree-optimization/32169 + * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and + CONVERT_EXPR, check whether min and max both converted to an + overflow infinity representation. + 2007-06-08 Eric Botcazou <ebotcazou@adacore.com> * reload1.c (fixup_abnormal_edges): Clear bb field for insns diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 14f7bafa213..bc45908ac6b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-06-09 Ian Lance Taylor <iant@google.com> + + PR tree-optimization/32169 + * gcc.c-torture/compile/pr32169.c: New test. + 2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com> * gcc.dg/vect/costmodel: New directory. diff --git a/gcc/testsuite/gcc.c-torture/compile/pr32169.c b/gcc/testsuite/gcc.c-torture/compile/pr32169.c new file mode 100644 index 00000000000..29d3022df73 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr32169.c @@ -0,0 +1,17 @@ +void f(char); +static inline +void * __memset_generic(char c) +{ + f(c); +} +int prepare_startup_playback_urb( + int b, + int c +) +{ + char d; + if (b) + __memset_generic(c == ( 1) ? 0x80 : 0); + else + __memset_generic (c == ( 1) ? 0x80 : 0); +} diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index 7506092278e..2a51de7ba43 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -2208,6 +2208,8 @@ extract_range_from_unary_expr (value_range_t *vr, tree expr) && is_gimple_val (new_max) && tree_int_cst_equal (new_min, orig_min) && tree_int_cst_equal (new_max, orig_max) + && (!is_overflow_infinity (new_min) + || !is_overflow_infinity (new_max)) && (cmp = compare_values (new_min, new_max)) <= 0 && cmp >= -1) { |

