From 46fefbcf15c754e2cc0dcb499b881501a475e124 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 20 Jul 2020 17:11:45 -0500 Subject: [PATCH] Added 'drop' instruction for ignored function return values --- include/onyxtypes.h | 1 + onyx | Bin 291376 -> 291640 bytes progs/structs.onyx | 7 ++++++- src/onyxchecker.c | 13 ++++++++----- src/onyxtypes.c | 8 ++++++++ src/onyxwasm.c | 4 ++++ 6 files changed, 27 insertions(+), 6 deletions(-) diff --git a/include/onyxtypes.h b/include/onyxtypes.h index f7feda57..1f7ff864 100644 --- a/include/onyxtypes.h +++ b/include/onyxtypes.h @@ -104,5 +104,6 @@ StructMember type_struct_lookup_member(Type* type, char* member); b32 type_is_pointer(Type* type); b32 type_is_struct(Type* type); b32 type_is_bool(Type* type); +b32 type_results_in_void(Type* type); #endif // #ifndef ONYX_TYPES diff --git a/onyx b/onyx index 91945452d1234bb1987909f35894949e666073fe..b260910cf00a23a6a8e48f85596b3ca9e4968dda 100755 GIT binary patch delta 61595 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 I<^&4~aI&nky|pGv<{Yfp*S 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 z%0A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 diff --git a/progs/structs.onyx b/progs/structs.onyx index ad96f3ce..1bf7f3e2 100644 --- a/progs/structs.onyx +++ b/progs/structs.onyx @@ -105,12 +105,17 @@ link_create :: proc (data: i32, parent: ^^Link) { *parent = link; } -link_print :: proc (start: ^Link) { +link_print :: proc (start: ^Link) -> i32 { + count := 0; + walker := start; while (walker as i32) != 0 { print(walker.data); walker = walker.next; + count += 1; } + + return count; } link_test :: proc #export "main2" { diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 604989c3..7fe714b4 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -380,6 +380,8 @@ CHECK(binaryop, AstBinaryOp* binop, b32 assignment_is_ok) { if (binop->operation >= Binary_Op_Equal && binop->operation <= Binary_Op_Greater_Equal) { binop->type = &basic_types[Basic_Kind_Bool]; + } else if (binop_is_assignment(binop)) { + binop->type = &basic_types[Basic_Kind_Void]; } else { binop->type = binop->left->type; } @@ -575,16 +577,17 @@ CHECK(global, AstGlobal* global) { CHECK(statement, AstNode* stmt) { switch (stmt->kind) { + case Ast_Kind_Break: return 0; + case Ast_Kind_Continue: return 0; + case Ast_Kind_Return: return check_return((AstReturn *) stmt); case Ast_Kind_If: return check_if((AstIf *) stmt); case Ast_Kind_While: return check_while((AstWhile *) stmt); case Ast_Kind_For: return check_for((AstFor *) stmt); - case Ast_Kind_Call: return check_call((AstCall *) stmt); case Ast_Kind_Block: return check_block((AstBlock *) stmt); - case Ast_Kind_Binary_Op: return check_binaryop((AstBinaryOp *) stmt, 1); - - case Ast_Kind_Break: return 0; - case Ast_Kind_Continue: return 0; + case Ast_Kind_Binary_Op: + stmt->flags |= Ast_Flag_Expr_Ignored; + return check_binaryop((AstBinaryOp *) stmt, 1); default: stmt->flags |= Ast_Flag_Expr_Ignored; diff --git a/src/onyxtypes.c b/src/onyxtypes.c index f23b8802..6b10c3c9 100644 --- a/src/onyxtypes.c +++ b/src/onyxtypes.c @@ -277,3 +277,11 @@ b32 type_is_struct(Type* type) { b32 type_is_bool(Type* type) { return type != NULL && type->kind == Type_Kind_Basic && type->Basic.kind == Basic_Kind_Bool; } + +b32 type_results_in_void(Type* type) { + return (type == NULL) + || (type->kind == Type_Kind_Basic && type->Basic.kind == Basic_Kind_Void) + || ( (type->kind == Type_Kind_Function) + && (type->Function.return_type->kind == Type_Kind_Basic) + && (type->Function.return_type->Basic.kind == Basic_Kind_Void)); +} diff --git a/src/onyxwasm.c b/src/onyxwasm.c index cfeb97b9..c5d9cc7e 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -913,6 +913,10 @@ COMPILE_FUNC(expression, AstTyped* expr) { assert(0); } + if (expr->flags & Ast_Flag_Expr_Ignored && + !type_results_in_void(expr->type)) + WI(WI_DROP); + *pcode = code; } -- 2.25.1