summaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorjiez <jiez@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-26 10:59:34 +0000
committerjiez <jiez@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-26 10:59:34 +0000
commitbca0860e20ea2e35cf5dc2448e70c3d3dd07f22e (patch)
treece0e499820982aa0f8a5cf58903650b5becea8b2 /gcc/testsuite
parent32936803fb83b18e5a9d0e702fde31920bafe063 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/Warray-bounds-8.c20
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;
+}