Lines Matching refs:sym
169 struct symbol *sym; in find_symbol() local
171 for (sym = symtab[h]; sym; sym = sym->hash_next) in find_symbol()
172 if (map_to_ns(sym->type) == map_to_ns(ns) && in find_symbol()
173 strcmp(name, sym->name) == 0 && in find_symbol()
174 sym->is_declared) in find_symbol()
177 if (exact && sym && sym->type != ns) in find_symbol()
179 return sym; in find_symbol()
182 static int is_unknown_symbol(struct symbol *sym) in is_unknown_symbol() argument
186 return ((sym->type == SYM_STRUCT || in is_unknown_symbol()
187 sym->type == SYM_UNION || in is_unknown_symbol()
188 sym->type == SYM_ENUM) && in is_unknown_symbol()
189 (defn = sym->defn) && defn->tag == SYM_NORMAL && in is_unknown_symbol()
202 struct symbol *sym; in __add_symbol() local
242 for (sym = symtab[h]; sym; sym = sym->hash_next) { in __add_symbol()
243 if (map_to_ns(sym->type) == map_to_ns(type) && in __add_symbol()
244 strcmp(name, sym->name) == 0) { in __add_symbol()
247 else if (sym->type == type && in __add_symbol()
248 equal_list(sym->defn, defn)) { in __add_symbol()
249 if (!sym->is_declared && sym->is_override) { in __add_symbol()
255 sym->is_declared = 1; in __add_symbol()
256 return sym; in __add_symbol()
257 } else if (!sym->is_declared) { in __add_symbol()
258 if (sym->is_override && flag_preserve) { in __add_symbol()
263 sym->is_declared = 1; in __add_symbol()
264 return sym; in __add_symbol()
266 status = is_unknown_symbol(sym) ? in __add_symbol()
271 return sym; in __add_symbol()
277 if (sym) { in __add_symbol()
281 if (*psym == sym) { in __add_symbol()
282 *psym = sym->hash_next; in __add_symbol()
289 sym = xmalloc(sizeof(*sym)); in __add_symbol()
290 sym->name = name; in __add_symbol()
291 sym->type = type; in __add_symbol()
292 sym->defn = defn; in __add_symbol()
293 sym->expansion_trail = NULL; in __add_symbol()
294 sym->visited = NULL; in __add_symbol()
295 sym->is_extern = is_extern; in __add_symbol()
297 sym->hash_next = symtab[h]; in __add_symbol()
298 symtab[h] = sym; in __add_symbol()
300 sym->is_declared = !is_reference; in __add_symbol()
301 sym->status = status; in __add_symbol()
302 sym->is_override = 0; in __add_symbol()
318 return sym; in __add_symbol()
470 struct string_list *sym, *def; in read_reference() local
474 sym = read_node(f); in read_reference()
475 if (sym && sym->tag == SYM_NORMAL && in read_reference()
476 !strcmp(sym->string, "override")) { in read_reference()
478 free_node(sym); in read_reference()
479 sym = read_node(f); in read_reference()
481 if (!sym) in read_reference()
495 subsym = add_reference_symbol(xstrdup(sym->string), sym->tag, in read_reference()
498 free_node(sym); in read_reference()
540 static unsigned long expand_and_crc_sym(struct symbol *sym, unsigned long crc) in expand_and_crc_sym() argument
542 struct string_list *list = sym->defn; in expand_and_crc_sym()
634 if (!sym->visited) { in expand_and_crc_sym()
635 *end = sym; in expand_and_crc_sym()
636 end = &sym->visited; in expand_and_crc_sym()
637 sym->visited = (struct symbol *)-1L; in expand_and_crc_sym()
646 struct symbol *sym; in export_symbol() local
648 sym = find_symbol(name, SYM_NORMAL, 0); in export_symbol()
649 if (!sym) in export_symbol()
660 sym->expansion_trail = expansion_trail; in export_symbol()
661 expansion_trail = sym; in export_symbol()
662 crc = expand_and_crc_sym(sym, 0xffffffff) ^ 0xffffffff; in export_symbol()
664 sym = expansion_trail; in export_symbol()
665 while (sym != (struct symbol *)-1L) { in export_symbol()
666 struct symbol *n = sym->expansion_trail; in export_symbol()
668 if (sym->status != STATUS_UNCHANGED) { in export_symbol()
677 print_type_name(sym->type, sym->name); in export_symbol()
678 if (sym->status == STATUS_DEFINED) in export_symbol()
684 sym->expansion_trail = 0; in export_symbol()
685 sym = n; in export_symbol()
848 struct symbol *sym = visited_symbols; in main() local
850 if (sym->is_override) in main()
852 if (symbol_types[sym->type].n) { in main()
853 putc(symbol_types[sym->type].n, dumpfile); in main()
856 fputs(sym->name, dumpfile); in main()
858 if (sym->is_extern) in main()
860 print_list(dumpfile, sym->defn); in main()
863 visited_symbols = sym->visited; in main()
864 sym->visited = NULL; in main()