From 60d7c833c015706e6276acca558c3a04502d401e Mon Sep 17 00:00:00 2001 From: Ginger Bill Date: Sun, 28 May 2017 21:56:40 +0100 Subject: [PATCH] Fix unary expression type check --- src/check_expr.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/check_expr.c b/src/check_expr.c index ec13d26b0..b5e683038 100644 --- a/src/check_expr.c +++ b/src/check_expr.c @@ -1225,6 +1225,7 @@ bool abi_compat_return_by_value(gbAllocator a, ProcCallingConvention cc, Type *a return false; } + if (str_eq(build_context.ODIN_OS, str_lit("windows"))) { i64 size = 8*type_size_of(a, abi_return_type); switch (size) { @@ -1859,6 +1860,12 @@ Type *check_type_extra(Checker *c, AstNode *e, Type *named_type) { bool check_unary_op(Checker *c, Operand *o, Token op) { + if (o->type == NULL) { + gbString str = expr_to_string(o->expr); + error_node(o->expr, "Expression has no value `%s`", str); + gb_string_free(str); + return false; + } // TODO(bill): Handle errors correctly Type *type = base_type(base_vector_type(o->type)); gbString str = NULL;