1 /* { dg-do compile } */
2 /* { dg-options "-O1 -fdump-tree-dom2" } */
4 extern void abort (void);
7 typedef union tree_node
*tree
;
8 extern const char tree_code_type
[];
13 long pointer_alias_set
;
20 if (tree_code_type
[t
->code
])
22 if (t
->pointer_alias_set
)
25 if (tree_code_type
[__t
->code
])
30 /* There should be precisely one load of {t,__t}->code. If there is
31 more than one, then the dominator optimizations failed. */
32 /* { dg-final { scan-tree-dump-times "->code" 1 "dom2"} } */
34 /* There should be precisely one load of tree_code_type. If there is
35 more than one, then the dominator optimizations failed. */
36 /* { dg-final { scan-tree-dump-times "tree_code_type" 1 "dom2"} } */
38 /* There should be one IF conditional. If 'tree_code_type[t->code]' is
39 zero, then the third if() conditional is unnecessary. That should cause
40 the call to abort() to be removed, which in turn causes the whole second
42 /* { dg-final { scan-tree-dump-times "if " 1 "dom2"} } */
44 /* { dg-final { cleanup-tree-dump "dom2" } } */