Browse Source

Fix enumerated array type information creation bug

gingerBill 5 years ago
parent
commit
724c776dbe
2 changed files with 6 additions and 6 deletions
  1. 2 2
      src/ir.cpp
  2. 4 4
      src/llvm_backend.cpp

+ 2 - 2
src/ir.cpp

@@ -11882,8 +11882,8 @@ void ir_setup_type_info_data(irProcedure *proc) { // NOTE(bill): Setup type_info
 			irValue *min_value = ir_emit_struct_ep(proc, tag, 4);
 			irValue *max_value = ir_emit_struct_ep(proc, tag, 5);
 
-			irValue *min_v = ir_value_constant(core_type(t->EnumeratedArray.index), t->EnumeratedArray.min_value);
-			irValue *max_v = ir_value_constant(core_type(t->EnumeratedArray.index), t->EnumeratedArray.max_value);
+			irValue *min_v = ir_value_constant(t_i64, t->EnumeratedArray.min_value);
+			irValue *max_v = ir_value_constant(t_i64, t->EnumeratedArray.max_value);
 
 			ir_emit_store(proc, min_value, min_v);
 			ir_emit_store(proc, max_value, max_v);

+ 4 - 4
src/llvm_backend.cpp

@@ -11273,11 +11273,11 @@ void lb_setup_type_info_data(lbProcedure *p) { // NOTE(bill): Setup type_info da
 			lbValue min_value = lb_emit_struct_ep(p, tag, 4);
 			lbValue max_value = lb_emit_struct_ep(p, tag, 5);
 
-			lbValue min_v = lb_const_value(m, core_type(t->EnumeratedArray.index), t->EnumeratedArray.min_value);
-			lbValue max_v = lb_const_value(m, core_type(t->EnumeratedArray.index), t->EnumeratedArray.max_value);
+			lbValue min_v = lb_const_value(m, t_i64, t->EnumeratedArray.min_value);
+			lbValue max_v = lb_const_value(m, t_i64, t->EnumeratedArray.max_value);
 
-			lb_emit_store_union_variant(p, min_value, min_v, min_v.type);
-			lb_emit_store_union_variant(p, max_value, max_v, max_v.type);
+			lb_emit_store(p, min_value, min_v);
+			lb_emit_store(p, max_value, max_v);
 			break;
 		}
 		case Type_DynamicArray: {