From 3ec3fa2f447b9301426ca6eba7b3d575a7b7ed7f Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 10 Aug 2020 14:54:58 -0500 Subject: [PATCH] bugfix with compile time expression as array size --- onyx | Bin 386616 -> 386792 bytes progs/stack_based.onyx | 4 ++++ src/onyxchecker.c | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/onyx b/onyx index 1b601253fb755f74440e77cbe1f04c63ccb92241..0304ad6c83f1b9756eba03cc31494cdac5723bc3 100755 GIT binary patch delta 30230 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 delta 29962 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 diff --git a/progs/stack_based.onyx b/progs/stack_based.onyx index bae44419..7ddfcd13 100644 --- a/progs/stack_based.onyx +++ b/progs/stack_based.onyx @@ -101,4 +101,8 @@ start :: proc #export { } print(soa.y[3]); print_ptr(^soa.y[3]); + + fancy : [5 + 3 * 4] i32; + fancy[2] = 123; + print(fancy[2]); } \ No newline at end of file diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 973f8cb8..8354c391 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -30,6 +30,10 @@ CHECK(function_header, AstFunction* func); CHECK(memres, AstMemRes* memres); static inline void fill_in_type(AstTyped* node) { + if (node->type_node && node->type_node->kind == Ast_Kind_Array_Type) { + if (((AstArrayType *) node->type_node)->count_expr) check_expression(&((AstArrayType *) node->type_node)->count_expr); + } + if (node->type == NULL) node->type = type_build_from_ast(semstate.allocator, node->type_node); } -- 2.25.1