Add testcase for PR47593
authorSebastian Pop <sebastian.pop@amd.com>
Tue, 26 Jul 2011 18:48:20 +0000 (18:48 +0000)
committerSebastian Pop <spop@gcc.gnu.org>
Tue, 26 Jul 2011 18:48:20 +0000 (18:48 +0000)
2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>

PR middle-end/47653
* gcc.dg/graphite/run-id-pr47593.c: New.

From-SVN: r176803

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/graphite/run-id-pr47593.c [new file with mode: 0644]

index 4efc523376b8963f3662b76e783e86141a71ddab..d1fc84f8cab427ba943c123a257c75f33a48168e 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
+
+       PR middle-end/47653
+       * gcc.dg/graphite/run-id-pr47593.c: New.
+
 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
 
        PR middle-end/47653
diff --git a/gcc/testsuite/gcc.dg/graphite/run-id-pr47593.c b/gcc/testsuite/gcc.dg/graphite/run-id-pr47593.c
new file mode 100644 (file)
index 0000000..6c8450e
--- /dev/null
@@ -0,0 +1,29 @@
+/* { dg-options "-O2 -fgraphite-identity -m32" } */
+
+struct Foo {
+  int **p;
+  int **q;
+};
+
+int __attribute__((noinline))
+bar (void)
+{
+  struct Foo f;
+  int j, i = 1;
+  char *p;
+  int *x = &i;
+  int *y = &j;
+  f.p = &y;
+  f.q = &x;
+  p = (char *)&f;
+  for (j = 0; j < sizeof (int *); ++j)
+    p++;
+  return ***(int ***)p;
+}
+extern void abort (void);
+int main()
+{
+  if (bar () != 1)
+    abort ();
+  return 0;
+}