From f278904b34582ef862fd90f7ec74bbf2c990a6e0 Mon Sep 17 00:00:00 2001 From: Baitinq Date: Tue, 11 Feb 2025 00:02:11 +0100 Subject: Codegen: Fix generating equality expressions --- src/codegen.zig | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/codegen.zig b/src/codegen.zig index cc1d79d..a402124 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -359,6 +359,7 @@ pub const CodeGen = struct { const ptr = self.environment.get_variable(name.?) orelse unreachable; _ = core.LLVMBuildStore(self.builder, result, ptr.value); + ptr.type = core.LLVMInt64Type(); return ptr; }, @@ -377,6 +378,7 @@ pub const CodeGen = struct { const ptr = self.environment.get_variable(name.?) orelse unreachable; _ = core.LLVMBuildStore(self.builder, result, ptr.value); + ptr.type = core.LLVMInt64Type(); return ptr; }, @@ -407,10 +409,15 @@ pub const CodeGen = struct { const rhs_value = try self.generate_expression_value(exp.rhs, null); const cmp = core.LLVMBuildICmp(self.builder, types.LLVMIntPredicate.LLVMIntEQ, lhs_value.value, rhs_value.value, ""); - return self.create_variable(.{ - .value = cmp, - .type = core.LLVMInt1Type(), - }); + + std.debug.assert(name != null); + + const ptr = self.environment.get_variable(name.?) orelse unreachable; + + _ = core.LLVMBuildStore(self.builder, cmp, ptr.value); + ptr.type = core.LLVMInt1Type(); + + return ptr; }, else => unreachable, }; -- cgit 1.4.1