aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'evaluate.c')
-rw-r--r--evaluate.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/evaluate.c b/evaluate.c
index 28bfd7c..cdbd064 100644
--- a/evaluate.c
+++ b/evaluate.c
@@ -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)