From d7aeb76801cf76d495d15ab96fa09fe139dfb480 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Wed, 24 Mar 2004 10:54:50 -0700 Subject: [PATCH] Warn about users trying to use type names in expressions. I think I'll allow type expressions at some point, since it shouldn't actually be all that hard, and would even clean some stuff up. But for now, we'll just warn about non-C code. --- expression.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/expression.c b/expression.c index 48414c3e..dc503cae 100644 --- a/expression.c +++ b/expression.c @@ -199,9 +199,23 @@ struct token *primary_expression(struct token *token, struct expression **tree) break; case TOKEN_IDENT: { + struct symbol *sym = lookup_symbol(token->ident, NS_SYMBOL | NS_TYPEDEF); + + /* + * I'd like to support types as real first-class citizens, + * with type comparisons etc: + * + * if (typeof(a) == int) .. + * + * But for now just do normal C. + */ + if (sym && sym->namespace == NS_TYPEDEF) { + warn(token->pos, "We don't support type expressions (yet?)"); + sym = NULL; + } expr = alloc_expression(token->pos, EXPR_SYMBOL); expr->symbol_name = token->ident; - expr->symbol = lookup_symbol(token->ident, NS_SYMBOL); + expr->symbol = sym; token = token->next; break; } -- 2.11.4.GIT