diff options
| author | Baitinq <[email protected]> | 2025-02-11 00:02:11 +0100 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-02-11 00:02:11 +0100 |
| commit | f278904b34582ef862fd90f7ec74bbf2c990a6e0 (patch) | |
| tree | 0f77b315802c0b15bdc070ec153d7429fb00fef8 | |
| parent | Evaluator: Add "printb" function (diff) | |
| download | interpreter-f278904b34582ef862fd90f7ec74bbf2c990a6e0.tar.gz interpreter-f278904b34582ef862fd90f7ec74bbf2c990a6e0.tar.bz2 interpreter-f278904b34582ef862fd90f7ec74bbf2c990a6e0.zip | |
Codegen: Fix generating equality expressions
| -rw-r--r-- | src/codegen.zig | 15 |
1 files 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, }; |