annotate gcc/testsuite/gcc.dg/tree-ssa/20030729-1.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* { dg-do compile } */
kono
parents:
diff changeset
2 /* { dg-options "-O1 -fdump-tree-dom2 -std=gnu89" } */
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 extern void abort (void);
kono
parents:
diff changeset
5 union tree_node;
kono
parents:
diff changeset
6 typedef union tree_node *tree;
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 enum tree_code
kono
parents:
diff changeset
10 {
kono
parents:
diff changeset
11 SET_TYPE,
kono
parents:
diff changeset
12 RECORD_TYPE,
kono
parents:
diff changeset
13 LAST_AND_UNUSED_TREE_CODE
kono
parents:
diff changeset
14 };
kono
parents:
diff changeset
15 extern const char tree_code_type[];
kono
parents:
diff changeset
16
kono
parents:
diff changeset
17 struct tree_common
kono
parents:
diff changeset
18 {
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 enum tree_code code:8;
kono
parents:
diff changeset
21 };
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26
kono
parents:
diff changeset
27 union tree_node
kono
parents:
diff changeset
28 {
kono
parents:
diff changeset
29 struct tree_common common;
kono
parents:
diff changeset
30 };
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 readonly_fields_p (type)
kono
parents:
diff changeset
33 tree type;
kono
parents:
diff changeset
34 {
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 if (type->common.code != RECORD_TYPE)
kono
parents:
diff changeset
37 return;
kono
parents:
diff changeset
38
kono
parents:
diff changeset
39 if (tree_code_type[type->common.code] != 't')
kono
parents:
diff changeset
40 abort ();
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 return;
kono
parents:
diff changeset
43 }
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 /* A good optimizer would realize that the cast to (unsigned int) is
kono
parents:
diff changeset
46 useless as the earlier cast of the same value of (unsigned char) will
kono
parents:
diff changeset
47 always produce the same result. */
kono
parents:
diff changeset
48 /* { dg-final { scan-tree-dump-times "\\(unsigned int\\)" 0 "dom2"} } */
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 /* There should be one load of ->common.code. We currently fail this
kono
parents:
diff changeset
51 because we load from ->common.code using different types. */
kono
parents:
diff changeset
52 /* { dg-final { scan-tree-dump-times "common\.code" 1 "dom2"} } */
kono
parents:
diff changeset
53