From 3aea08df7869f39c12a4d787be25306944d68e70 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 11 Dec 2017 11:06:43 +0000 Subject: Change how abs, min, max, and clamp are implemented for floats --- src/check_expr.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/check_expr.cpp') diff --git a/src/check_expr.cpp b/src/check_expr.cpp index 9b33dabcd..da830aab1 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -2527,8 +2527,7 @@ Entity *check_selector(Checker *c, Operand *operand, AstNode *node, Type *type_h } if (entity->kind == Entity_ProcGroup) { - auto *pge = &entity->ProcGroup; - Array procs = pge->entities; + Array procs = entity->ProcGroup.entities; bool skip = false; for_array(i, procs) { Entity *p = procs[i]; @@ -5460,8 +5459,12 @@ ExprKind check_expr_base_internal(Checker *c, Operand *o, AstNode *node, Type *t max = index; } - if (t->kind == Type_Array && is_to_be_determined_array_count) { - t->Array.count = max; + if (t->kind == Type_Array) { + if (is_to_be_determined_array_count) { + t->Array.count = max; + } else if (0 < max && max < t->Array.count) { + error(node, "Expected %lld values for this array literal, got %lld", cast(long long)t->Array.count, cast(long long)max); + } } break; -- cgit v1.2.3