From 3c3b7d0d99780682acd5e2339cd4852f87fba9fe Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 14 Dec 2020 19:32:13 -0600 Subject: [PATCH] better error reporting for invalid binary operations --- include/onyxastnodes.h | 2 ++ onyx | Bin 505580 -> 505996 bytes src/onyxchecker.c | 56 +++++++++++++++++++++++++++++++++++++++++ src/onyxwasm.c | 4 +-- 4 files changed, 59 insertions(+), 3 deletions(-) diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index c752c68d..d331f280 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -240,6 +240,8 @@ typedef enum BinaryOp { Binary_Op_Pipe = 33, Binary_Op_Range = 34, + + Binary_Op_Count } BinaryOp; typedef enum OnyxIntrinsic { diff --git a/onyx b/onyx index 82f9930ce153e6dd4e3b3d7b100d5e26cd5db2cf..8f9659c1a627dae859409d54e42933c12c68ebdf 100755 GIT binary patch delta 72849 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

dpsr%9(LXl5B=y}~@wy{=Pd@jP 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 delta 72354 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 diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 98133c32..01c95e42 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -796,8 +796,64 @@ b32 check_binaryop(AstBinaryOp** pbinop, b32 assignment_is_ok) { } } + static const u8 binop_allowed[Binary_Op_Count] = { + /* Add */ Basic_Flag_Numeric | Basic_Flag_Pointer, + /* Minus */ Basic_Flag_Numeric | Basic_Flag_Pointer, + /* Multiply */ Basic_Flag_Numeric, + /* Divide */ Basic_Flag_Numeric, + /* Modulus */ Basic_Flag_Integer, + + /* Equal */ Basic_Flag_Ordered, + /* Not_Equal */ Basic_Flag_Ordered, + /* Less */ Basic_Flag_Ordered, + /* Less_Equal */ Basic_Flag_Ordered, + /* Greater */ Basic_Flag_Ordered, + /* Greater_Equal */ Basic_Flag_Ordered, + + /* And */ Basic_Flag_Integer, + /* Or */ Basic_Flag_Integer, + /* Xor */ Basic_Flag_Integer, + /* Shl */ Basic_Flag_Integer, + /* Shr */ Basic_Flag_Integer, + /* Sar */ Basic_Flag_Integer, + + /* Bool_And */ Basic_Flag_Boolean, + /* Bool_Or */ Basic_Flag_Boolean, + + /* Assign_Start */ 0, + /* Assign */ 0, + /* Assign_Add */ 0, + /* Assign_Minus */ 0, + /* Assign_Multiply */ 0, + /* Assign_Divide */ 0, + /* Assign_Modulus */ 0, + /* Assign_And */ 0, + /* Assign_Or */ 0, + /* Assign_Xor */ 0, + /* Assign_Shl */ 0, + /* Assign_Shr */ 0, + /* Assign_Sar */ 0, + /* Assign_End */ 0, + + /* Pipe */ 0, + /* Range */ 0, + }; + binop->type = binop->left->type; + enum BasicFlag effective_flags = 0; + switch (binop->type->kind) { + case Type_Kind_Basic: effective_flags = binop->type->Basic.flags; break; + case Type_Kind_Pointer: effective_flags = Basic_Flag_Pointer; break; + case Type_Kind_Enum: effective_flags = Basic_Flag_Integer; break; + } + + if ((binop_allowed[binop->operation] & effective_flags) == 0) { + onyx_report_error(binop->token->pos, "Binary operator not allowed for arguments of type '%s'.", + type_get_name(binop->type)); + return 1; + } + if (binop->flags & Ast_Flag_Comptime) { // NOTE: Not a binary op *pbinop = (AstBinaryOp *) ast_reduce(semstate.node_allocator, (AstTyped *) binop); diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 894c4b4e..be107baf 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -1230,9 +1230,7 @@ EMIT_FUNC(binop, AstBinaryOp* binop) { WasmInstructionType binop_instr = binop_map[(i32) binop->operation][optype]; - if (binop_instr == WI_NOP) { - assert(("Invalid type and operation", 0)); - } + assert(binop_instr != WI_NOP); // NOTE: Use unsigned variant if needed // Unsigned instructions are always right after -- 2.25.1