Dead
[official-gcc.git] / gomp-20050608-branch / gcc / testsuite / gcc.dg / tree-ssa / 20030709-2.c
blob4712a3b9fb3e62d32863a0c0fbe117cbc547439b
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-cddce" } */
4 struct rtx_def;
5 typedef struct rtx_def *rtx;
6 union tree_node;
7 typedef union tree_node *tree;
8 typedef struct mem_attrs
10 int foo;
12 } mem_attrs;
13 union rtunion_def
15 mem_attrs *rtmem;
17 typedef union rtunion_def rtunion;
18 struct rtx_def
20 rtunion fld[1];
22 struct tree_decl
24 rtx rtl;
26 union tree_node
28 struct tree_decl decl;
30 void *
31 get_alias_set (t)
32 tree t;
34 long set;
35 if (t->decl.rtl)
36 return (t->decl.rtl->fld[1].rtmem
37 ? 0
38 : (((t->decl.rtl ? t->decl.rtl: (make_decl_rtl (t, 0), t->decl.rtl)))->fld[1]).rtmem);
39 return (void*)-1;
42 /* There should be precisely one load of ->decl.rtl. If there is
43 more than, then the dominator optimizations failed. */
44 /* { dg-final { scan-tree-dump-times "->decl\\.rtl" 1 "cddce"} } */
46 /* There should be no loads of .rtmem since the complex return statement
47 is just "return 0". */
48 /* { dg-final { scan-tree-dump-times ".rtmem" 0 "cddce"} } */
50 /* There should be one IF statement (the complex return statement should
51 collapse down to a simple return 0 without any conditionals). */
52 /* { dg-final { scan-tree-dump-times "if " 1 "cddce"} } */
54 /* { dg-final { cleanup-tree-dump "cddce" } } */