diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-10-22 20:13:42 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-07 21:03:38 -0700 |
commit | f9344b85c8b0b06fc7aa94e8615bf88dd4b25e54 (patch) | |
tree | cae584be47f7b7c0522d5e93c8122d29e22b4a4e /show-parse.c | |
parent | Make "check" (aka "sparse") check for context imbalance. (diff) | |
download | sparse-f9344b85c8b0b06fc7aa94e8615bf88dd4b25e54.tar.gz sparse-f9344b85c8b0b06fc7aa94e8615bf88dd4b25e54.tar.bz2 sparse-f9344b85c8b0b06fc7aa94e8615bf88dd4b25e54.zip |
Get rid of the old "iterate()" interfaces.
Use FOR_EACH_PTR() instead, or the much fancier iterators
for basic blocks.
Diffstat (limited to 'show-parse.c')
-rw-r--r-- | show-parse.c | 62 |
1 files changed, 18 insertions, 44 deletions
diff --git a/show-parse.c b/show-parse.c index d793a89..248e220 100644 --- a/show-parse.c +++ b/show-parse.c @@ -109,29 +109,24 @@ const char *modifier_string(unsigned long mod) return buffer; } -void show_struct_member(struct symbol *sym, void *data, int flags) +void show_struct_member(struct symbol *sym) { - if (flags & ITERATE_FIRST) - printf(" {\n\t"); - printf("%s:%d:%ld at offset %ld", show_ident(sym->ident), sym->bit_size, sym->ctype.alignment, sym->offset); + printf("\t%s:%d:%ld at offset %ld", show_ident(sym->ident), sym->bit_size, sym->ctype.alignment, sym->offset); if (sym->fieldwidth) printf("[%d..%d]", sym->bit_offset, sym->bit_offset+sym->fieldwidth-1); - if (flags & ITERATE_LAST) - printf("\n} "); - else - printf(", "); -} - -static void show_one_symbol(struct symbol *sym, void *sep, int flags) -{ - show_symbol(sym); - if (!(flags & ITERATE_LAST)) - printf("%s", (const char *)sep); + printf("\n"); } void show_symbol_list(struct symbol_list *list, const char *sep) { - symbol_iterate(list, show_one_symbol, (void *)sep); + struct symbol *sym; + const char *prepend = ""; + + FOR_EACH_PTR(list, sym) { + puts(prepend); + prepend = ", "; + show_symbol(sym); + } END_FOR_EACH_PTR(sym); } struct type_name { @@ -331,12 +326,15 @@ void show_symbol(struct symbol *sym) * Show actual implementation information */ switch (type->type) { - case SYM_STRUCT: - symbol_iterate(type->symbol_list, show_struct_member, NULL); - break; + struct symbol *member; + case SYM_STRUCT: case SYM_UNION: - symbol_iterate(type->symbol_list, show_struct_member, NULL); + printf(" {\n"); + FOR_EACH_PTR(type->symbol_list, member) { + show_struct_member(member); + } END_FOR_EACH_PTR(member); + printf("}\n"); break; case SYM_FN: { @@ -572,30 +570,6 @@ int show_statement(struct statement *stmt) return 0; } -static void show_one_statement(struct statement *stmt, void *sep, int flags) -{ - show_statement(stmt); - if (!(flags & ITERATE_LAST)) - printf("%s", (const char *)sep); -} - -void show_statement_list(struct statement_list *stmt, const char *sep) -{ - statement_iterate(stmt, show_one_statement, (void *)sep); -} - -static void show_one_expression(struct expression *expr, void *sep, int flags) -{ - show_expression(expr); - if (!(flags & ITERATE_LAST)) - printf("%s", (const char *)sep); -} - -void show_expression_list(struct expression_list *list, const char *sep) -{ - expression_iterate(list, show_one_expression, (void *)sep); -} - static int show_call_expression(struct expression *expr) { struct symbol *direct; |