diff options
Diffstat (limited to 'src/codegen.zig')
| -rw-r--r-- | src/codegen.zig | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index 11b8dd2..7d5308b 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -549,6 +549,9 @@ pub const CodeGen = struct { const lhs_value = try self.generate_expression_value(exp.lhs, null); const rhs_value = try self.generate_expression_value(exp.rhs, null); + std.debug.print("4 TYP {s}: {any} vs {any}\n", .{ name orelse "unknown", lhs_value.node_type.TYPE, rhs_value.node_type.TYPE }); + std.debug.assert(self.compare_types(lhs_value.node_type, rhs_value.node_type, false)); + var result: llvm.LLVMValueRef = undefined; var node_type: *parser.Node = try self.create_node(.{ .TYPE = .{ .SIMPLE_TYPE = .{ .name = "i64", @@ -571,6 +574,9 @@ pub const CodeGen = struct { const lhs_value = try self.generate_expression_value(exp.lhs, null); const rhs_value = try self.generate_expression_value(exp.rhs, null); + std.debug.print("5 TYP {s}: {any} vs {any}\n", .{ name orelse "unknown", lhs_value.node_type.TYPE, rhs_value.node_type.TYPE }); + std.debug.assert(self.compare_types(lhs_value.node_type, rhs_value.node_type, false)); + var result: llvm.LLVMValueRef = undefined; switch (exp.typ) { .MUL => { @@ -626,6 +632,9 @@ pub const CodeGen = struct { const lhs_value = try self.generate_expression_value(exp.lhs, null); const rhs_value = try self.generate_expression_value(exp.rhs, null); + std.debug.print("6 TYP {s}: {any} vs {any}\n", .{ name orelse "unknown", lhs_value.node_type.TYPE, rhs_value.node_type.TYPE }); + std.debug.assert(self.compare_types(lhs_value.node_type, rhs_value.node_type, false)); + const op: c_uint = switch (exp.typ) { .EQ => llvm.LLVMIntEQ, .NE => llvm.LLVMIntNE, |