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;
}