OSDN Git Service

Merge tree-ssa-20020619-branch into mainline.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / tree-ssa / 20030814-5.c
1 /* { dg-do compile } */
2 /* { dg-options "-O1 -fdump-tree-dom3 -fdump-tree-optimized" } */
3     
4 union tree_node;
5 typedef union tree_node *tree;
6 extern const char tree_code_type[];
7 struct tree_common
8 {
9   int code;
10 };
11 struct tree_decl 
12 {
13   long pointer_alias_set;
14 };
15 union tree_node
16 {
17   struct tree_common common;
18   struct tree_decl decl;
19 };
20 long
21 blah (decl, set)
22      tree decl;
23      long set;
24 {
25   decl->decl.pointer_alias_set = oof();
26   if (tree_code_type[decl->common.code] != 'd')
27     abort ();
28   record_alias_subset (decl->decl.pointer_alias_set);
29   if (set != -1)
30     set = 0; 
31   return set;
32 }
33
34 /* There should be precisely one reference to pointer_alias_set.  If there is
35    more than one, then the dominator optimizations failed.  */
36 /* { dg-final { scan-tree-dump-times "pointer_alias_set" 1 "dom3"} } */
37
38 /* The assignment set = -1 in the ELSE clause of the last IF
39    statement should be removed by the final cleanup phase.  */
40 /* { dg-final { scan-tree-dump-times "set = -1" 0 "optimized"} } */