1 /* { dg-do compile } */
2 /* { dg-options "-O1 -fdump-tree-dom2" } */
3 
4 
5 union tree_node;
6 typedef union tree_node *tree;
7 extern const char tree_code_type[];
8 struct tree_common
9 {
10   int code;
11   tree type;
12 };
13 struct tree_exp
14 {
15   tree operands[1];
16 };
17 union tree_node
18 {
19   struct tree_common common;
20   struct tree_exp exp;
21 };
22 long
get_alias_set(t)23 get_alias_set (t)
24      tree t;
25 {
26   if (tree_code_type[t->common.code] != 't' && t->common.type == 0)
27     return 0;
28   if (tree_code_type[t->common.code] != 't')
29     {
30       while (t->exp.operands[0])
31         t = t->exp.operands[0];
32     }
33 }
34 
35 /* There should be exactly three IF conditionals if we thread jumps
36    properly.  */
37 /* { dg-final { scan-tree-dump-times "if " 3 "dom2"} } */
38 
39