aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/evaluate.c
diff options
context:
space:
mode:
Diffstat (limited to 'evaluate.c')
-rw-r--r--evaluate.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/evaluate.c b/evaluate.c
index 539ef803..038fd64a 100644
--- a/evaluate.c
+++ b/evaluate.c
@@ -383,10 +383,8 @@ static inline int classify_type(struct symbol *type, struct symbol **base)
if (type->type == SYM_NODE)
type = type->ctype.base_type;
if (type->type == SYM_TYPEOF) {
- type = evaluate_expression(type->initializer);
- if (!type)
- type = &bad_ctype;
- else if (type->type == SYM_NODE)
+ type = examine_symbol_type(type);
+ if (type->type == SYM_NODE)
type = type->ctype.base_type;
}
if (type->type == SYM_ENUM)