aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Taylor <rob.taylor@codethink.co.uk>2007-07-02 13:26:42 +0100
committerJosh Triplett <josh@freedesktop.org>2007-07-13 08:34:49 -0700
commit29753cad1490a9ddaaac3de6c541cd973608ed09 (patch)
tree54ef790ffd7e276028f02fd3dc1040259a4bfbd4 /symbol.c
parentadd sparse_keep_tokens api to lib.h (diff)
downloadsparse-29753cad1490a9ddaaac3de6c541cd973608ed09.tar.gz
sparse-29753cad1490a9ddaaac3de6c541cd973608ed09.tar.bz2
sparse-29753cad1490a9ddaaac3de6c541cd973608ed09.zip
new get_type_name function
Adds function get_type_name to symbol.h to get a string representation of a given type. Signed-off-by: Rob Taylor <rob.taylor@codethink.co.uk>
Diffstat (limited to 'symbol.c')
-rw-r--r--symbol.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/symbol.c b/symbol.c
index 2fa68d9..9c105c2 100644
--- a/symbol.c
+++ b/symbol.c
@@ -444,6 +444,35 @@ struct symbol *examine_symbol_type(struct symbol * sym)
return sym;
}
+const char* get_type_name(enum type type)
+{
+ const char *type_lookup[] = {
+ [SYM_UNINITIALIZED] = "uninitialized",
+ [SYM_PREPROCESSOR] = "preprocessor",
+ [SYM_BASETYPE] = "basetype",
+ [SYM_NODE] = "node",
+ [SYM_PTR] = "pointer",
+ [SYM_FN] = "function",
+ [SYM_ARRAY] = "array",
+ [SYM_STRUCT] = "struct",
+ [SYM_UNION] = "union",
+ [SYM_ENUM] = "enum",
+ [SYM_TYPEDEF] = "typedef",
+ [SYM_TYPEOF] = "typeof",
+ [SYM_MEMBER] = "member",
+ [SYM_BITFIELD] = "bitfield",
+ [SYM_LABEL] = "label",
+ [SYM_RESTRICT] = "restrict",
+ [SYM_FOULED] = "fouled",
+ [SYM_KEYWORD] = "keyword",
+ [SYM_BAD] = "bad"};
+
+ if (type <= SYM_BAD)
+ return type_lookup[type];
+ else
+ return NULL;
+}
+
static struct symbol_list *restr, *fouled;
void create_fouled(struct symbol *type)