about summary refs log tree commit diff
path: root/src/codegen.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen.zig')
-rw-r--r--src/codegen.zig9
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,