Lines Matching refs:sym
155 struct symbol *sym;
157 hash_for_each_possible(symbol_hashtable, sym, hnode, crc32(name)) {
158 if (map_to_ns(sym->type) == map_to_ns(ns) &&
159 strcmp(name, sym->name) == 0 &&
160 sym->is_declared)
164 if (exact && sym && sym->type != ns)
166 return sym;
169 static int is_unknown_symbol(struct symbol *sym)
173 return ((sym->type == SYM_STRUCT ||
174 sym->type == SYM_UNION ||
175 sym->type == SYM_ENUM) &&
176 (defn = sym->defn) && defn->tag == SYM_NORMAL &&
232 struct symbol *sym;
242 hash_for_each_possible(symbol_hashtable, sym, hnode, h) {
243 if (map_to_ns(sym->type) != map_to_ns(type) ||
244 strcmp(name, sym->name))
249 } else if (sym->type == type && equal_list(sym->defn, defn)) {
250 if (!sym->is_declared && sym->is_override) {
255 sym->is_declared = 1;
256 } else if (sym->is_declared) {
258 } else if (sym->is_override && flag_preserve) {
263 sym->is_declared = 1;
265 status = is_unknown_symbol(sym) ?
270 return sym;
273 if (sym) {
274 hash_del(&sym->hnode);
276 free_list(sym->defn, NULL);
277 free(sym->name);
278 free(sym);
282 sym = xmalloc(sizeof(*sym));
283 sym->name = xstrdup(name);
284 sym->type = type;
285 sym->defn = defn;
286 sym->expansion_trail = NULL;
287 sym->visited = NULL;
288 sym->is_extern = is_extern;
290 hash_add(symbol_hashtable, &sym->hnode, h);
292 sym->is_declared = !is_reference;
293 sym->status = status;
294 sym->is_override = 0;
310 return sym;
464 struct string_list *sym, *def;
468 sym = read_node(f);
469 if (sym && sym->tag == SYM_NORMAL &&
470 !strcmp(sym->string, "override")) {
472 free_node(sym);
473 sym = read_node(f);
475 if (!sym)
489 subsym = add_reference_symbol(sym->string, sym->tag,
492 free_node(sym);
534 static uint32_t expand_and_crc_sym(struct symbol *sym, uint32_t crc)
536 struct string_list *list = sym->defn;
628 if (!sym->visited) {
629 *end = sym;
630 end = &sym->visited;
631 sym->visited = (struct symbol *)-1L;
640 struct symbol *sym;
644 sym = find_symbol(name, SYM_NORMAL, 0);
645 if (!sym) {
655 sym->expansion_trail = expansion_trail;
656 expansion_trail = sym;
657 crc = expand_and_crc_sym(sym, 0xffffffff) ^ 0xffffffff;
659 sym = expansion_trail;
660 while (sym != (struct symbol *)-1L) {
661 struct symbol *n = sym->expansion_trail;
663 if (sym->status != STATUS_UNCHANGED) {
673 print_type_name(sym->type, sym->name);
674 if (sym->status == STATUS_DEFINED)
680 sym->expansion_trail = 0;
681 sym = n;
820 struct symbol *sym = visited_symbols;
822 if (sym->is_override)
824 if (symbol_types[sym->type].n) {
825 putc(symbol_types[sym->type].n, dumpfile);
828 fputs(sym->name, dumpfile);
830 if (sym->is_extern)
832 print_list(dumpfile, sym->defn);
835 visited_symbols = sym->visited;
836 sym->visited = NULL;