diff options
author | dec05eba <dec05eba@protonmail.com> | 2019-09-14 00:52:24 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2020-07-25 14:36:46 +0200 |
commit | 7d663615b2a44715e7447a40cae467d7d4e38b9c (patch) | |
tree | 612e81f55ca73c3da868bd2ab6cd96ae6ac30a15 /src/compiler.c | |
parent | 7103d3a1df6c7fee6e8efbe3588204d1e869004e (diff) |
Start on opengl test, fix stack alignment before call (sys-v)
Diffstat (limited to 'src/compiler.c')
-rw-r--r-- | src/compiler.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/compiler.c b/src/compiler.c index 8dda1c6..6e6bc4b 100644 --- a/src/compiler.c +++ b/src/compiler.c @@ -44,6 +44,7 @@ static CHECK_RESULT int create_default_type(amal_compiler *compiler, const char expr->resolve_data.type.type = RESOLVED_TYPE_LHS_EXPR; expr->resolve_data.type.value.lhs_expr = lhs_expr; expr->resolve_data.status = AST_RESOLVED; + lhs_expr->rhs_expr->resolve_data = expr->resolve_data; return scope_add_child(&compiler->root_scope, expr); } @@ -58,12 +59,12 @@ static CHECK_RESULT int create_default_type_fixed_size(amal_compiler *compiler, static CHECK_RESULT int init_default_types(amal_compiler *compiler) { return_if_error(create_default_type_fixed_size(compiler, "i8", 1, &compiler->default_types.i8)); return_if_error(create_default_type_fixed_size(compiler, "i16", 2, &compiler->default_types.i16)); - return_if_error(create_default_type_fixed_size(compiler, "i32", 3, &compiler->default_types.i32)); - return_if_error(create_default_type_fixed_size(compiler, "i64", 4, &compiler->default_types.i64)); + return_if_error(create_default_type_fixed_size(compiler, "i32", 4, &compiler->default_types.i32)); + return_if_error(create_default_type_fixed_size(compiler, "i64", 8, &compiler->default_types.i64)); return_if_error(create_default_type_fixed_size(compiler, "u8", 1, &compiler->default_types.u8)); return_if_error(create_default_type_fixed_size(compiler, "u16", 2, &compiler->default_types.u16)); - return_if_error(create_default_type_fixed_size(compiler, "u32", 3, &compiler->default_types.u32)); - return_if_error(create_default_type_fixed_size(compiler, "u64", 4, &compiler->default_types.u64)); + return_if_error(create_default_type_fixed_size(compiler, "u32", 4, &compiler->default_types.u32)); + return_if_error(create_default_type_fixed_size(compiler, "u64", 8, &compiler->default_types.u64)); return_if_error(create_default_type_num_pointers(compiler, "isize", 1, &compiler->default_types.isize)); return_if_error(create_default_type_num_pointers(compiler, "usize", 1, &compiler->default_types.usize)); return_if_error(create_default_type_fixed_size(compiler, "f32", 4, &compiler->default_types.f32)); @@ -185,7 +186,7 @@ static CHECK_RESULT int amal_compiler_load_in_this_thread(amal_compiler *compile result = AMAL_COMPILER_ERR; cleanup_if_error(amal_mutex_lock(&compiler->mutex, "amal_compiler_load_in_this_thread, create arena allocator")); - return_if_error(arena_allocator_alloc(&compiler->allocator, sizeof(ArenaAllocator), (void**)&parser_allocator)); + cleanup_if_error(arena_allocator_alloc(&compiler->allocator, sizeof(ArenaAllocator), (void**)&parser_allocator)); amal_mutex_tryunlock(&compiler->mutex); return_if_error(arena_allocator_init(parser_allocator)); |