annotate gcc/testsuite/gcc.dg/20050629-1.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
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 "-O2 -w" } */
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 /* This file was automatically reduced from tree-ssa-operands.c. It
kono
parents:
diff changeset
5 contains many warnings, but it exposes a copy propagation bug that
kono
parents:
diff changeset
6 is somewhat difficult to reproduce otherwise. */
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 __extension__ typedef __SIZE_TYPE__ size_t;
kono
parents:
diff changeset
9 extern void fancy_abort (const char *, int, const char *) __attribute__ ((__noreturn__));
kono
parents:
diff changeset
10 typedef union tree_node *tree;
kono
parents:
diff changeset
11 enum tree_code {
kono
parents:
diff changeset
12 TREE_LIST, ARRAY_TYPE, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, STRING_CST, LT_EXPR, GE_EXPR, LABEL_EXPR, ASM_EXPR, SSA_NAME, };
kono
parents:
diff changeset
13 enum tree_code_class {
kono
parents:
diff changeset
14 tcc_type, tcc_reference, tcc_expression };
kono
parents:
diff changeset
15 extern const enum tree_code_class tree_code_type[];
kono
parents:
diff changeset
16 extern const unsigned char tree_code_length[];
kono
parents:
diff changeset
17 struct tree_common {
kono
parents:
diff changeset
18 union tree_ann_d *ann;
kono
parents:
diff changeset
19 __extension__ enum tree_code code : 8;
kono
parents:
diff changeset
20 };
kono
parents:
diff changeset
21 struct tree_string {
kono
parents:
diff changeset
22 char str[1];
kono
parents:
diff changeset
23 };
kono
parents:
diff changeset
24 struct tree_list {
kono
parents:
diff changeset
25 tree purpose;
kono
parents:
diff changeset
26 tree value;
kono
parents:
diff changeset
27 };
kono
parents:
diff changeset
28 struct tree_exp {
kono
parents:
diff changeset
29 tree operands[1];
kono
parents:
diff changeset
30 };
kono
parents:
diff changeset
31 typedef struct ssa_use_operand_d {
kono
parents:
diff changeset
32 struct ssa_use_operand_d* prev;
kono
parents:
diff changeset
33 struct ssa_use_operand_d* next;
kono
parents:
diff changeset
34 tree stmt;
kono
parents:
diff changeset
35 tree * use;
kono
parents:
diff changeset
36 }
kono
parents:
diff changeset
37 ssa_use_operand_t;
kono
parents:
diff changeset
38 struct tree_ssa_name {
kono
parents:
diff changeset
39 struct ssa_use_operand_d imm_uses;
kono
parents:
diff changeset
40 };
kono
parents:
diff changeset
41 union tree_node {
kono
parents:
diff changeset
42 struct tree_common common;
kono
parents:
diff changeset
43 struct tree_string string;
kono
parents:
diff changeset
44 struct tree_list list;
kono
parents:
diff changeset
45 struct tree_exp exp;
kono
parents:
diff changeset
46 struct tree_ssa_name ssa_name;
kono
parents:
diff changeset
47 };
kono
parents:
diff changeset
48 typedef struct bitmap_head_def *bitmap;
kono
parents:
diff changeset
49 typedef union varray_data_tag {
kono
parents:
diff changeset
50 char c[1];
kono
parents:
diff changeset
51 int i[1];
kono
parents:
diff changeset
52 tree * tp[1];
kono
parents:
diff changeset
53 }
kono
parents:
diff changeset
54 varray_data;
kono
parents:
diff changeset
55 struct varray_head_tag {
kono
parents:
diff changeset
56 size_t num_elements;
kono
parents:
diff changeset
57 size_t elements_used;
kono
parents:
diff changeset
58 varray_data data;
kono
parents:
diff changeset
59 };
kono
parents:
diff changeset
60 typedef struct varray_head_tag *varray_type;
kono
parents:
diff changeset
61 extern void varray_check_failed (varray_type, size_t, const char *, int, const char *) __attribute__ ((__noreturn__));
kono
parents:
diff changeset
62 typedef ssa_use_operand_t *use_operand_p;
kono
parents:
diff changeset
63 struct use_optype_d {
kono
parents:
diff changeset
64 struct use_optype_d *next;
kono
parents:
diff changeset
65 struct ssa_use_operand_d use_ptr;
kono
parents:
diff changeset
66 };
kono
parents:
diff changeset
67 typedef struct use_optype_d *use_optype_p;
kono
parents:
diff changeset
68 struct ssa_operand_memory_d {
kono
parents:
diff changeset
69 char mem[(2048 - sizeof (void *))];
kono
parents:
diff changeset
70 };
kono
parents:
diff changeset
71 struct stmt_operands_d {
kono
parents:
diff changeset
72 struct use_optype_d * use_ops;
kono
parents:
diff changeset
73 };
kono
parents:
diff changeset
74 struct ptr_info_def {
kono
parents:
diff changeset
75 tree name_mem_tag;
kono
parents:
diff changeset
76 };
kono
parents:
diff changeset
77 typedef struct subvar *subvar_t;
kono
parents:
diff changeset
78 struct var_ann_d {
kono
parents:
diff changeset
79 size_t uid;
kono
parents:
diff changeset
80 };
kono
parents:
diff changeset
81 struct stmt_ann_d {
kono
parents:
diff changeset
82 unsigned modified : 1;
kono
parents:
diff changeset
83 struct stmt_operands_d operands;
kono
parents:
diff changeset
84 bitmap addresses_taken;
kono
parents:
diff changeset
85 };
kono
parents:
diff changeset
86 typedef struct var_ann_d *var_ann_t;
kono
parents:
diff changeset
87 typedef struct stmt_ann_d *stmt_ann_t;
kono
parents:
diff changeset
88 static __inline__ var_ann_t var_ann (tree t) {
kono
parents:
diff changeset
89 }
kono
parents:
diff changeset
90 static __inline__ stmt_ann_t stmt_ann (tree t) {
kono
parents:
diff changeset
91 ((void)(!(is_gimple_stmt (t)) ? fancy_abort ("/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-flow-inline.h", 55, __FUNCTION__), 0 : 0));
kono
parents:
diff changeset
92 return (stmt_ann_t) t->common.ann;
kono
parents:
diff changeset
93 }
kono
parents:
diff changeset
94 static __inline__ unsigned char stmt_modified_p (tree t) {
kono
parents:
diff changeset
95 stmt_ann_t ann = stmt_ann (t);
kono
parents:
diff changeset
96 return ann ? ann->modified : 1;
kono
parents:
diff changeset
97 }
kono
parents:
diff changeset
98 static __inline__ void delink_imm_use (ssa_use_operand_t *linknode) {
kono
parents:
diff changeset
99 if (linknode->prev == ((void *)0)) return;
kono
parents:
diff changeset
100 linknode->prev->next = linknode->next;
kono
parents:
diff changeset
101 linknode->next->prev = linknode->prev;
kono
parents:
diff changeset
102 linknode->prev = ((void *)0);
kono
parents:
diff changeset
103 linknode->next = ((void *)0);
kono
parents:
diff changeset
104 }
kono
parents:
diff changeset
105 static __inline__ void link_imm_use_to_list (ssa_use_operand_t *linknode, ssa_use_operand_t *list) {
kono
parents:
diff changeset
106 linknode->prev = list;
kono
parents:
diff changeset
107 linknode->next = list->next;
kono
parents:
diff changeset
108 list->next = linknode;
kono
parents:
diff changeset
109 }
kono
parents:
diff changeset
110 static __inline__ void link_imm_use (ssa_use_operand_t *linknode, tree def) {
kono
parents:
diff changeset
111 ssa_use_operand_t *root;
kono
parents:
diff changeset
112 if (!def || ((enum tree_code) (def)->common.code) != SSA_NAME) linknode->prev = ((void *)0);
kono
parents:
diff changeset
113 else {
kono
parents:
diff changeset
114 root = &(__extension__ ({ const tree __t = (def); if (((enum tree_code) (__t)->common.code) != (SSA_NAME)) tree_check_failed (__t, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-flow-inline.h", 222, __FUNCTION__, (SSA_NAME), 0); __t; }
kono
parents:
diff changeset
115 )->ssa_name.imm_uses);
kono
parents:
diff changeset
116 link_imm_use_to_list (linknode, root);
kono
parents:
diff changeset
117 }
kono
parents:
diff changeset
118 }
kono
parents:
diff changeset
119 static __inline__ void link_imm_use_stmt (ssa_use_operand_t *linknode, tree def, tree stmt) {
kono
parents:
diff changeset
120 link_imm_use (linknode, def);
kono
parents:
diff changeset
121 }
kono
parents:
diff changeset
122 struct ggc_root_tab {
kono
parents:
diff changeset
123 };
kono
parents:
diff changeset
124 struct opbuild_list_d {
kono
parents:
diff changeset
125 varray_type vars;
kono
parents:
diff changeset
126 varray_type uid;
kono
parents:
diff changeset
127 varray_type next;
kono
parents:
diff changeset
128 int first;
kono
parents:
diff changeset
129 unsigned num;
kono
parents:
diff changeset
130 };
kono
parents:
diff changeset
131 static struct opbuild_list_d build_uses;
kono
parents:
diff changeset
132 static struct opbuild_list_d build_v_may_defs;
kono
parents:
diff changeset
133 static struct ssa_operand_memory_d *operand_memory = ((void *)0);
kono
parents:
diff changeset
134 static unsigned operand_memory_index;
kono
parents:
diff changeset
135 static use_optype_p free_uses = ((void *)0);
kono
parents:
diff changeset
136 static __inline__ int opbuild_next (struct opbuild_list_d *list, int prev) {
kono
parents:
diff changeset
137 return __extension__ (*({
kono
parents:
diff changeset
138 varray_type const _va = (list->next);
kono
parents:
diff changeset
139 const size_t _n = (prev);
kono
parents:
diff changeset
140 if (_n >= _va->num_elements) varray_check_failed (_va, _n, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 323, __FUNCTION__);
kono
parents:
diff changeset
141 &_va->data.i[_n];
kono
parents:
diff changeset
142 }
kono
parents:
diff changeset
143 ));
kono
parents:
diff changeset
144 }
kono
parents:
diff changeset
145 static __inline__ tree * opbuild_elem_real (struct opbuild_list_d *list, int elem) {
kono
parents:
diff changeset
146 return __extension__ (*({
kono
parents:
diff changeset
147 varray_type const _va = (list->vars);
kono
parents:
diff changeset
148 const size_t _n = (elem);
kono
parents:
diff changeset
149 if (_n >= _va->num_elements) varray_check_failed (_va, _n, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 332, __FUNCTION__);
kono
parents:
diff changeset
150 &_va->data.tp[_n];
kono
parents:
diff changeset
151 }
kono
parents:
diff changeset
152 ));
kono
parents:
diff changeset
153 }
kono
parents:
diff changeset
154 static __inline__ void opbuild_clear (struct opbuild_list_d *list) {
kono
parents:
diff changeset
155 ((list->vars)->elements_used = 0);
kono
parents:
diff changeset
156 ((list->next)->elements_used = 0);
kono
parents:
diff changeset
157 }
kono
parents:
diff changeset
158 static __inline__ void * ssa_operand_alloc (unsigned size) {
kono
parents:
diff changeset
159 char *ptr;
kono
parents:
diff changeset
160 if (operand_memory_index + size >= (2048 - sizeof (void *))) {
kono
parents:
diff changeset
161 ptr = ggc_alloc_stat (sizeof (struct ssa_operand_memory_d) );
kono
parents:
diff changeset
162 }
kono
parents:
diff changeset
163 ptr = &(operand_memory->mem[operand_memory_index]);
kono
parents:
diff changeset
164 return ptr;
kono
parents:
diff changeset
165 }
kono
parents:
diff changeset
166 static __inline__ void correct_use_link (use_operand_p ptr, tree stmt) {
kono
parents:
diff changeset
167 use_operand_p prev;
kono
parents:
diff changeset
168 tree root;
kono
parents:
diff changeset
169 prev = ptr->prev;
kono
parents:
diff changeset
170 if (prev) {
kono
parents:
diff changeset
171 unsigned char stmt_mod = 1;
kono
parents:
diff changeset
172 while (stmt_mod) { while (prev->stmt == stmt || prev->stmt == ((void *)0)) prev = prev->prev; if (prev->use == ((void *)0)) stmt_mod = 0; else if ((stmt_mod = stmt_modified_p (prev->stmt))) prev = prev->prev; }
kono
parents:
diff changeset
173 if (prev->use == ((void *)0)) root = prev->stmt;
kono
parents:
diff changeset
174 else root = *(prev->use);
kono
parents:
diff changeset
175 if (root == *(ptr->use)) return;
kono
parents:
diff changeset
176 }
kono
parents:
diff changeset
177 delink_imm_use (ptr);
kono
parents:
diff changeset
178 link_imm_use (ptr, *(ptr->use));
kono
parents:
diff changeset
179 }
kono
parents:
diff changeset
180 static __inline__ struct use_optype_d * alloc_use (void) {
kono
parents:
diff changeset
181 struct use_optype_d *ret;
kono
parents:
diff changeset
182 {
kono
parents:
diff changeset
183 free_uses = free_uses->next;
kono
parents:
diff changeset
184 }
kono
parents:
diff changeset
185 ret = (struct use_optype_d *)ssa_operand_alloc (sizeof (struct use_optype_d));
kono
parents:
diff changeset
186 return ret;
kono
parents:
diff changeset
187 }
kono
parents:
diff changeset
188 static __inline__ void finalize_ssa_use_ops (tree stmt) {
kono
parents:
diff changeset
189 int new_i;
kono
parents:
diff changeset
190 struct use_optype_d *old_ops, *ptr, *last;
kono
parents:
diff changeset
191 tree * old_base;
kono
parents:
diff changeset
192 struct use_optype_d new_list;
kono
parents:
diff changeset
193 last = &new_list;
kono
parents:
diff changeset
194 if (old_ops) old_base = ((old_ops)->use_ptr.use);
kono
parents:
diff changeset
195 while (old_ops && new_i != -1) {
kono
parents:
diff changeset
196 tree * new_base = opbuild_elem_real (&build_uses, (new_i));
kono
parents:
diff changeset
197 if (old_base == new_base) { last->next = old_ops; last = old_ops; correct_use_link ((&((last)->use_ptr)), stmt); old_ops = old_ops->next; new_i = opbuild_next (&build_uses, new_i); }
kono
parents:
diff changeset
198 else if (old_base < new_base) { use_operand_p use_p = (&((old_ops)->use_ptr)); delink_imm_use (use_p); old_ops = old_ops->next; ptr->next = free_uses; }
kono
parents:
diff changeset
199 else { ptr = alloc_use (); (ptr)->use_ptr.use = (opbuild_elem_real (&build_uses, (new_i))); link_imm_use_stmt (&((ptr)->use_ptr), *(opbuild_elem_real (&build_uses, (new_i))), (stmt)); new_i = opbuild_next (&build_uses, new_i); }
kono
parents:
diff changeset
200 if (old_ops) old_base = ((old_ops)->use_ptr.use);
kono
parents:
diff changeset
201 }
kono
parents:
diff changeset
202 for ( ;
kono
parents:
diff changeset
203 new_i != -1;
kono
parents:
diff changeset
204 new_i = opbuild_next (&build_uses, new_i)) {
kono
parents:
diff changeset
205 ptr = alloc_use ();
kono
parents:
diff changeset
206 (ptr)->use_ptr.use = (opbuild_elem_real (&build_uses, (new_i)));
kono
parents:
diff changeset
207 link_imm_use_stmt (&((ptr)->use_ptr), *(opbuild_elem_real (&build_uses, (new_i))), (stmt));
kono
parents:
diff changeset
208 }
kono
parents:
diff changeset
209 {
kono
parents:
diff changeset
210 { use_operand_p use_p = (&((ptr)->use_ptr)); delink_imm_use (use_p); }
kono
parents:
diff changeset
211 }
kono
parents:
diff changeset
212 (stmt_ann (stmt)->operands.use_ops) = new_list.next;
kono
parents:
diff changeset
213 {
kono
parents:
diff changeset
214 unsigned x = 0;
kono
parents:
diff changeset
215 for (ptr = (stmt_ann (stmt)->operands.use_ops);
kono
parents:
diff changeset
216 ptr;
kono
parents:
diff changeset
217 ptr = ptr->next) x++;
kono
parents:
diff changeset
218 }
kono
parents:
diff changeset
219 }
kono
parents:
diff changeset
220 finalize_ssa_uses (tree stmt) {
kono
parents:
diff changeset
221 {
kono
parents:
diff changeset
222 unsigned x;
kono
parents:
diff changeset
223 ((void)(!(*(opbuild_elem_real (&build_uses, x)) != stmt) ? fancy_abort ("/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 581, __FUNCTION__), 0 : 0));
kono
parents:
diff changeset
224 }
kono
parents:
diff changeset
225 finalize_ssa_use_ops (stmt);
kono
parents:
diff changeset
226 opbuild_clear (&build_uses);
kono
parents:
diff changeset
227 }
kono
parents:
diff changeset
228 finalize_ssa_v_may_def_ops (tree stmt) {
kono
parents:
diff changeset
229 int new_i;
kono
parents:
diff changeset
230 {
kono
parents:
diff changeset
231 }
kono
parents:
diff changeset
232 for ( ;
kono
parents:
diff changeset
233 new_i != -1;
kono
parents:
diff changeset
234 new_i = opbuild_next (&build_v_may_defs, new_i)) {
kono
parents:
diff changeset
235 }
kono
parents:
diff changeset
236 {
kono
parents:
diff changeset
237 }
kono
parents:
diff changeset
238 }
kono
parents:
diff changeset
239 get_expr_operands (tree stmt, tree *expr_p, int flags) {
kono
parents:
diff changeset
240 enum tree_code code;
kono
parents:
diff changeset
241 tree expr = *expr_p;
kono
parents:
diff changeset
242 {
kono
parents:
diff changeset
243 { subvar_t svars; if (var_can_have_subvars (expr) && (svars = get_subvars_for_var (expr))) { } { } }
kono
parents:
diff changeset
244 { { if (code == LT_EXPR || code == GE_EXPR) { swap_tree_operands (stmt, &__extension__ (*({const tree __t = __extension__ ({ const tree __t = (expr); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1435, __FUNCTION__); __t; }); const int __i = (0); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1435, __FUNCTION__); &__t->exp.operands[__i]; })), &__extension__ (*({const tree __t = __extension__ ({ const tree __t = (expr); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1436, __FUNCTION__); __t; }); const int __i = (1); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1436, __FUNCTION__); &__t->exp.operands[__i]; }))); } { } } }
kono
parents:
diff changeset
245 }
kono
parents:
diff changeset
246 }
kono
parents:
diff changeset
247 get_asm_expr_operands (tree stmt) {
kono
parents:
diff changeset
248 int noutputs = list_length (__extension__ (*({
kono
parents:
diff changeset
249 const tree __t = __extension__ ({ const tree __t = (__extension__ ({ const tree __t = (stmt); if (((enum tree_code) (__t)->common.code) != (ASM_EXPR)) tree_check_failed (__t, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1495, __FUNCTION__, (ASM_EXPR), 0); __t; })); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1495, __FUNCTION__); __t; }
kono
parents:
diff changeset
250 );
kono
parents:
diff changeset
251 const int __i = (1);
kono
parents:
diff changeset
252 if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1495, __FUNCTION__);
kono
parents:
diff changeset
253 &__t->exp.operands[__i];
kono
parents:
diff changeset
254 }
kono
parents:
diff changeset
255 )));
kono
parents:
diff changeset
256 const char **oconstraints = (const char **) __builtin_alloca((noutputs) * sizeof (const char *));
kono
parents:
diff changeset
257 int i;
kono
parents:
diff changeset
258 tree link;
kono
parents:
diff changeset
259 const char *constraint;
kono
parents:
diff changeset
260 unsigned char allows_mem, allows_reg, is_inout;
kono
parents:
diff changeset
261 {
kono
parents:
diff changeset
262 oconstraints[i] = constraint = ((const char *)(__extension__ ({ const tree __t = ((__extension__ ({ const tree __t = ((__extension__ ({ const tree __t = (link); if (((enum tree_code) (__t)->common.code) != (TREE_LIST)) tree_check_failed (__t, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1506, __FUNCTION__, (TREE_LIST), 0); __t; })->list.purpose)); if (((enum tree_code) (__t)->common.code) != (TREE_LIST)) tree_check_failed (__t, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1506, __FUNCTION__, (TREE_LIST), 0); __t; })->list.value)); if (((enum tree_code) (__t)->common.code) != (STRING_CST)) tree_check_failed (__t, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1506, __FUNCTION__, (STRING_CST), 0); __t; }
kono
parents:
diff changeset
263 )->string.str));
kono
parents:
diff changeset
264 parse_output_constraint (&constraint, i, 0, 0, &allows_mem, &allows_reg, &is_inout);
kono
parents:
diff changeset
265 }
kono
parents:
diff changeset
266 }
kono
parents:
diff changeset
267 get_indirect_ref_operands (tree stmt, tree expr, int flags) {
kono
parents:
diff changeset
268 tree *pptr = &__extension__ (*({
kono
parents:
diff changeset
269 const tree __t = __extension__ ({ const tree __t = (expr); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1591, __FUNCTION__); __t; }
kono
parents:
diff changeset
270 );
kono
parents:
diff changeset
271 const int __i = (0);
kono
parents:
diff changeset
272 if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1591, __FUNCTION__);
kono
parents:
diff changeset
273 &__t->exp.operands[__i];
kono
parents:
diff changeset
274 }
kono
parents:
diff changeset
275 ));
kono
parents:
diff changeset
276 tree ptr = *pptr;
kono
parents:
diff changeset
277 {
kono
parents:
diff changeset
278 struct ptr_info_def *pi = ((void *)0);
kono
parents:
diff changeset
279 if (((enum tree_code) (ptr)->common.code) == SSA_NAME && pi->name_mem_tag) { }
kono
parents:
diff changeset
280 }
kono
parents:
diff changeset
281 }
kono
parents:
diff changeset
282 note_addressable (tree var, stmt_ann_t s_ann) {
kono
parents:
diff changeset
283 subvar_t svars;
kono
parents:
diff changeset
284 {
kono
parents:
diff changeset
285 if (var_can_have_subvars (var) && (svars = get_subvars_for_var (var))) bitmap_set_bit (s_ann->addresses_taken, var_ann (var)->uid);
kono
parents:
diff changeset
286 }
kono
parents:
diff changeset
287 }
kono
parents:
diff changeset
288 const struct ggc_root_tab gt_ggc_r_gt_tree_ssa_operands_h[] = {
kono
parents:
diff changeset
289 {
kono
parents:
diff changeset
290 &operand_memory, }
kono
parents:
diff changeset
291 , {
kono
parents:
diff changeset
292 }
kono
parents:
diff changeset
293 , {
kono
parents:
diff changeset
294 }
kono
parents:
diff changeset
295 , {
kono
parents:
diff changeset
296 }
kono
parents:
diff changeset
297 , };