summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c')
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c b/gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c
new file mode 100644
index 00000000000..87a94f5bf31
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c
@@ -0,0 +1,36 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-fre1" } */
+
+struct inn
+{
+ int val;
+};
+
+struct biggerstruct
+{
+ int a, b;
+};
+
+union foo
+{
+ struct inn inn;
+ struct biggerstruct baz;
+} *fooptr;
+
+struct bar
+{
+ union foo foo;
+ int val2;
+} *barptr;
+
+int
+test ()
+{
+ union foo foo;
+ foo.inn.val = 0;
+ barptr->val2 = 123;
+ *fooptr = foo;
+ return barptr->val2;
+}
+
+/* { dg-final { scan-tree-dump-times "return 123" 1 "fre1"} } */