1 /* { dg-do compile } */
2 /* { dg-options "-O1 -fdump-tree-dom3" } */
4 extern void abort (void);
6 typedef union tree_node
*tree
;
13 LAST_AND_UNUSED_TREE_CODE
15 extern const char tree_code_type
[];
20 enum tree_code code
:8;
29 struct tree_common common
;
32 readonly_fields_p (type
)
36 if (type
->common
.code
!= RECORD_TYPE
)
39 if (tree_code_type
[type
->common
.code
] != 't')
45 /* A good optimizer would realize that the cast to (unsigned int) is
46 useless as the earlier cast of the same value of (unsigned char) will
47 always produce the same result. */
48 /* { dg-final { scan-tree-dump-times "\\(unsigned int\\)" 0 "dom3"} } */
50 /* There should be one load of ->common.code. We currently fail this
51 because we load from ->common.code using different types. */
52 /* { dg-final { scan-tree-dump-times "common\.code" 1 "dom3"} } */
54 /* { dg-final { cleanup-tree-dump "dom3" } } */