Print this page
new smatch

*** 133,143 **** add_tag(sym); base = sym->ctype.base_type; switch (sym->type) { case SYM_NODE: ! if (base->type == SYM_FN) sym->kind = 'f'; examine_symbol(base); break; case SYM_STRUCT: sym->kind = 's'; --- 133,143 ---- add_tag(sym); base = sym->ctype.base_type; switch (sym->type) { case SYM_NODE: ! if (base && base->type == SYM_FN) sym->kind = 'f'; examine_symbol(base); break; case SYM_STRUCT: sym->kind = 's';
*** 214,227 **** { struct string_list *filelist = NULL; char *file; examine_symbol_list(sparse_initialize(argc, argv, &filelist)); ! FOR_EACH_PTR_NOTAG(filelist, file) { sparse(file); examine_symbol_list(file_scope->symbols); ! } END_FOR_EACH_PTR_NOTAG(file); examine_symbol_list(global_scope->symbols); sort_list((struct ptr_list **)&taglist, cmp_sym); show_tags(taglist); return 0; } --- 214,227 ---- { struct string_list *filelist = NULL; char *file; examine_symbol_list(sparse_initialize(argc, argv, &filelist)); ! FOR_EACH_PTR(filelist, file) { sparse(file); examine_symbol_list(file_scope->symbols); ! } END_FOR_EACH_PTR(file); examine_symbol_list(global_scope->symbols); sort_list((struct ptr_list **)&taglist, cmp_sym); show_tags(taglist); return 0; }