浏览代码

IR Fix for UnionTagValue

Ginger Bill 8 年之前
父节点
当前提交
1e3b3c107c
共有 2 个文件被更改,包括 6 次插入5 次删除
  1. 4 2
      core/fmt.odin
  2. 2 3
      src/ir_print.cpp

+ 4 - 2
core/fmt.odin

@@ -174,7 +174,10 @@ fprint_type :: proc(fd: os.Handle, info: ^Type_Info) {
 }
 
 write_type :: proc(buf: ^String_Buffer, ti: ^Type_Info) {
-	if ti == nil do return;
+	if ti == nil {
+		write_string(buf, "nil");
+		return;
+	}
 
 	using Type_Info;
 	match info in ti.variant {
@@ -324,7 +327,6 @@ write_type :: proc(buf: ^String_Buffer, ti: ^Type_Info) {
 			write_int(buf, i64(info.bits[i]), 10);
 		}
 		write_string(buf, "}");
-
 	}
 }
 

+ 2 - 3
src/ir_print.cpp

@@ -1045,7 +1045,7 @@ void ir_print_instr(irFileBuffer *f, irModule *m, irValue *value) {
 		ir_write_string(f, " 0, ");
 		ir_print_type(f, m, t_i32);
 	#if 1
-		ir_fprintf(f, " %d", 2);
+		ir_fprintf(f, " 2");
 	#else
 		ir_fprintf(f, " %d", 2);
 	#endif
@@ -1064,11 +1064,10 @@ void ir_print_instr(irFileBuffer *f, irModule *m, irValue *value) {
 		ir_print_value(f, m, instr->UnionTagValue.address, et);
 		ir_write_byte(f, ',');
 	#if 1
-		ir_fprintf(f, " %d", 2);
+		ir_fprintf(f, " 2");
 	#else
 		ir_fprintf(f, " %d", 2);
 	#endif
-		ir_fprintf(f, ", %d", 2);
 		ir_write_string(f, " ; UnionTagValue");
 		ir_write_byte(f, '\n');
 	} break;