aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/vect
diff options
context:
space:
mode:
authorIra Rosen <irar@il.ibm.com>2009-05-28 09:02:53 +0000
committerIra Rosen <irar@gcc.gnu.org>2009-05-28 09:02:53 +0000
commit24adb18fce3b0263d959b11f52baeaa54dcdb8e9 (patch)
treea99db9e2ac7ceb41f1fe537971ad4d7160246508 /gcc/testsuite/gcc.dg/vect
parent2c5bfdf70b616ace5c3f5322299ccc9729e08384 (diff)
downloadgcc-24adb18fce3b0263d959b11f52baeaa54dcdb8e9.zip
gcc-24adb18fce3b0263d959b11f52baeaa54dcdb8e9.tar.gz
gcc-24adb18fce3b0263d959b11f52baeaa54dcdb8e9.tar.bz2
re PR tree-optimization/40254 (SPEC2006 403.gcc miscompares)
PR tree-optimization/40254 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account in analysis of basic blocks. From-SVN: r147945
Diffstat (limited to 'gcc/testsuite/gcc.dg/vect')
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr40254.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/vect/pr40254.c b/gcc/testsuite/gcc.dg/vect/pr40254.c
new file mode 100644
index 0000000..b890a449
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr40254.c
@@ -0,0 +1,39 @@
+#include <stdlib.h>
+#include <stdarg.h>
+#include "tree-vect.h"
+
+struct s
+{
+ int *x;
+ int x1;
+ int x2;
+ int x3;
+ int *y;
+};
+
+struct s arr[64] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
+
+__attribute__ ((noinline)) void
+foo (int i, int *in_x, int *in_y)
+{
+ arr[i].x = in_x;
+ arr[i].y = in_y;
+}
+
+int
+main (void)
+{
+ int a, b;
+
+ check_vect ();
+
+ foo (5, &a, &b);
+
+ if (arr[5].x != &a || arr[5].y != &b)
+ abort ();
+
+ return 0;
+}
+
+/* { dg-final { cleanup-tree-dump "vect" } } */
+