• Home
  • Raw
  • Download

Lines Matching refs:sym

153 	struct symbol *sym;  in find_symbol()  local
155 for (sym = symtab[h]; sym; sym = sym->hash_next) in find_symbol()
156 if (map_to_ns(sym->type) == map_to_ns(ns) && in find_symbol()
157 strcmp(name, sym->name) == 0 && in find_symbol()
158 sym->is_declared) in find_symbol()
161 return sym; in find_symbol()
164 static int is_unknown_symbol(struct symbol *sym) in is_unknown_symbol() argument
168 return ((sym->type == SYM_STRUCT || in is_unknown_symbol()
169 sym->type == SYM_UNION || in is_unknown_symbol()
170 sym->type == SYM_ENUM) && in is_unknown_symbol()
171 (defn = sym->defn) && defn->tag == SYM_NORMAL && in is_unknown_symbol()
184 struct symbol *sym; in __add_symbol() local
187 for (sym = symtab[h]; sym; sym = sym->hash_next) { in __add_symbol()
188 if (map_to_ns(sym->type) == map_to_ns(type) && in __add_symbol()
189 strcmp(name, sym->name) == 0) { in __add_symbol()
192 else if (sym->type == type && in __add_symbol()
193 equal_list(sym->defn, defn)) { in __add_symbol()
194 if (!sym->is_declared && sym->is_override) { in __add_symbol()
200 sym->is_declared = 1; in __add_symbol()
201 return sym; in __add_symbol()
202 } else if (!sym->is_declared) { in __add_symbol()
203 if (sym->is_override && flag_preserve) { in __add_symbol()
208 sym->is_declared = 1; in __add_symbol()
209 return sym; in __add_symbol()
211 status = is_unknown_symbol(sym) ? in __add_symbol()
216 return sym; in __add_symbol()
222 if (sym) { in __add_symbol()
226 if (*psym == sym) { in __add_symbol()
227 *psym = sym->hash_next; in __add_symbol()
234 sym = xmalloc(sizeof(*sym)); in __add_symbol()
235 sym->name = name; in __add_symbol()
236 sym->type = type; in __add_symbol()
237 sym->defn = defn; in __add_symbol()
238 sym->expansion_trail = NULL; in __add_symbol()
239 sym->visited = NULL; in __add_symbol()
240 sym->is_extern = is_extern; in __add_symbol()
242 sym->hash_next = symtab[h]; in __add_symbol()
243 symtab[h] = sym; in __add_symbol()
245 sym->is_declared = !is_reference; in __add_symbol()
246 sym->status = status; in __add_symbol()
247 sym->is_override = 0; in __add_symbol()
259 return sym; in __add_symbol()
366 struct string_list *sym, *def; in read_reference() local
370 sym = read_node(f); in read_reference()
371 if (sym && sym->tag == SYM_NORMAL && in read_reference()
372 !strcmp(sym->string, "override")) { in read_reference()
374 free_node(sym); in read_reference()
375 sym = read_node(f); in read_reference()
377 if (!sym) in read_reference()
391 subsym = add_reference_symbol(xstrdup(sym->string), sym->tag, in read_reference()
394 free_node(sym); in read_reference()
436 static unsigned long expand_and_crc_sym(struct symbol *sym, unsigned long crc) in expand_and_crc_sym() argument
438 struct string_list *list = sym->defn; in expand_and_crc_sym()
554 if (!sym->visited) { in expand_and_crc_sym()
555 *end = sym; in expand_and_crc_sym()
556 end = &sym->visited; in expand_and_crc_sym()
557 sym->visited = (struct symbol *)-1L; in expand_and_crc_sym()
566 struct symbol *sym; in export_symbol() local
568 sym = find_symbol(name, SYM_NORMAL); in export_symbol()
569 if (!sym) in export_symbol()
580 sym->expansion_trail = expansion_trail; in export_symbol()
581 expansion_trail = sym; in export_symbol()
582 crc = expand_and_crc_sym(sym, 0xffffffff) ^ 0xffffffff; in export_symbol()
584 sym = expansion_trail; in export_symbol()
585 while (sym != (struct symbol *)-1L) { in export_symbol()
586 struct symbol *n = sym->expansion_trail; in export_symbol()
588 if (sym->status != STATUS_UNCHANGED) { in export_symbol()
597 print_type_name(sym->type, sym->name); in export_symbol()
598 if (sym->status == STATUS_DEFINED) in export_symbol()
604 sym->expansion_trail = 0; in export_symbol()
605 sym = n; in export_symbol()
768 struct symbol *sym = visited_symbols; in main() local
770 if (sym->is_override) in main()
772 if (sym->type != SYM_NORMAL) { in main()
773 putc(symbol_type_name[sym->type][0], dumpfile); in main()
776 fputs(sym->name, dumpfile); in main()
778 if (sym->is_extern) in main()
780 print_list(dumpfile, sym->defn); in main()
783 visited_symbols = sym->visited; in main()
784 sym->visited = NULL; in main()