diff options
author | Christopher <sparse@chrisli.org> | 2010-03-28 22:41:49 -0700 |
---|---|---|
committer | Christopher <sparse@chrisli.org> | 2010-03-29 00:43:33 -0700 |
commit | 703499e552b45542a328e3016868419d65143f2b (patch) | |
tree | 929fe7f03c80acb756d9f7856a60c8e3ed1015d5 | |
parent | b4ef55610696028e8bf2b94797faa825784dad4a (diff) | |
download | sparse-703499e552b45542a328e3016868419d65143f2b.tar.gz |
evaluate: check for NULL type inside typeof
This should fix the segfault report by Randy.
It still doesn't parse the struct attribute correctly though.
Signed-off-by: Christopher <sparse@chrisli.org>
-rw-r--r-- | evaluate.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -340,7 +340,9 @@ static inline int classify_type(struct symbol *type, struct symbol **base) type = type->ctype.base_type; if (type->type == SYM_TYPEOF) { type = evaluate_expression(type->initializer); - if (type->type == SYM_NODE) + if (!type) + type = &bad_ctype; + else if (type->type == SYM_NODE) type = type->ctype.base_type; } if (type->type == SYM_ENUM) |