diff options
author | jiez <jiez@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-04-26 10:59:34 +0000 |
---|---|---|
committer | jiez <jiez@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-04-26 10:59:34 +0000 |
commit | bca0860e20ea2e35cf5dc2448e70c3d3dd07f22e (patch) | |
tree | ce0e499820982aa0f8a5cf58903650b5becea8b2 /gcc/testsuite | |
parent | 32936803fb83b18e5a9d0e702fde31920bafe063 (diff) | |
download | gcc-bca0860e20ea2e35cf5dc2448e70c3d3dd07f22e.tar.gz |
PR tree-optimization/43833
* tree-vrp.c (range_int_cst_p): New.
(range_int_cst_singleton_p): New.
(extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
when both operands are constants. Use range_int_cst_p in
BIT_IOR_EXPR case.
testsuite/
PR tree-optimization/43833
gcc.dg/Warray-bounds-8.c: New test case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158727 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/Warray-bounds-8.c | 20 |
2 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0524b7cffd2..9f470ca7d8c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-04-26 Jie Zhang <jie@codesourcery.com> + + PR tree-optimization/43833 + gcc.dg/Warray-bounds-8.c: New test case. + 2010-04-26 Richard Guenther <rguenther@suse.de> PR lto/43080 diff --git a/gcc/testsuite/gcc.dg/Warray-bounds-8.c b/gcc/testsuite/gcc.dg/Warray-bounds-8.c new file mode 100644 index 00000000000..85839f3f07e --- /dev/null +++ b/gcc/testsuite/gcc.dg/Warray-bounds-8.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -Wall" } */ +/* based on PR 43833 */ + +extern unsigned char data[5]; + +unsigned char +foo (char *str) +{ + int i, j; + unsigned char c = 0; + + for (i = 0; i < 8; i++) + { + j = i * 5; + if ((j % 8) > 3) + c |= data[(j / 8) + 1]; + } + return c; +} |