Hi, I am trying to use sparse to obtain function return types, arguments and their types. I modified test-inspect.c to use: === CODE SNIPPET === static void expand_symbols(struct symbol_list *list) { struct symbol *sym, *base_type, *arg; FOR_EACH_PTR(list, sym) { printf("function: %s\n", sym->ident->name); printf("type: %s\n", show_typename(sym->ctype.base_type)); base_type = get_base_type(sym); printf("arguments: \n"); FOR_EACH_PTR_NOTAG(base_type->arguments, arg) { printf ("%s %s\n", show_typename(arg->ctype.base_type), arg->ident->name); } END_FOR_EACH_PTR_NOTAG(arg); } END_FOR_EACH_PTR(sym); } === END === I also made the following changes: === expand.c === @@ -1038,8 +1038,11 @@ int expand_symbol(struct symbol *sym) retval = expand_expression(sym->initializer); /* expand the body of the symbol */ if (base_type->type == SYM_FN) { - if (base_type->stmt) + if (base_type->stmt) { + if (base_type->stmt->declaration) { expand_statement(base_type->stmt); + } + } === END === I have also commented out printing "( ... )" in case of a function in show-parse.c: === show-parse.c === case SYM_FN: - if (was_ptr) { + /* if (was_ptr) { prepend(name, "( "); append(name, " )"); was_ptr = 0; } - append(name, "( ... )"); + append(name, "( ... )"); */ break; === END === #1 The above code and changes does display a function name, its return type, list of arguments and their types. Are these correct, or are there better ways to do it without modifying the core files? #2 The above changes also displays global arrays in the output (if they exist). For example, if I had: const char bar[] = "hello"; It displays: function: bar type: char const [0] arguments: What can be done to only parse functions and not global arrays? #3 For some data types, "[usertype]" or "[0]", as in the above example, gets appended. How can I ensure that these are not emitted in the output? Appreciate any inputs in this regard. Thanks! SK -- Shakthi Kannan http://www.shakthimaan.com -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html