mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-30 03:10:06 +00:00
Add pkg field to testing.Internal_Test
This commit is contained in:
+9
-2
@@ -12941,13 +12941,20 @@ void ir_gen_tree(irGen *s) {
|
||||
irValue **found = map_get(&m->values, hash_entity(testing_proc));
|
||||
GB_ASSERT(found != nullptr);
|
||||
|
||||
String pkg_name = {};
|
||||
if (testing_proc->pkg != nullptr) {
|
||||
pkg_name = testing_proc->pkg->name;
|
||||
}
|
||||
irValue *v_pkg = ir_find_or_add_entity_string(m, pkg_name);
|
||||
irValue *v_name = ir_find_or_add_entity_string(m, name);
|
||||
irValue *v_p = *found;
|
||||
|
||||
|
||||
irValue *elem_ptr = ir_emit_array_epi(proc, all_tests_array, cast(i32)i);
|
||||
irValue *name_ptr = ir_emit_struct_ep(proc, elem_ptr, 0);
|
||||
irValue *p_ptr = ir_emit_struct_ep(proc, elem_ptr, 1);
|
||||
irValue *pkg_ptr = ir_emit_struct_ep(proc, elem_ptr, 0);
|
||||
irValue *name_ptr = ir_emit_struct_ep(proc, elem_ptr, 1);
|
||||
irValue *p_ptr = ir_emit_struct_ep(proc, elem_ptr, 2);
|
||||
ir_emit_store(proc, pkg_ptr, v_pkg);
|
||||
ir_emit_store(proc, name_ptr, v_name);
|
||||
ir_emit_store(proc, p_ptr, v_p);
|
||||
}
|
||||
|
||||
+10
-3
@@ -12909,16 +12909,23 @@ void lb_generate_code(lbGenerator *gen) {
|
||||
lbValue *found = map_get(&m->values, hash_entity(testing_proc));
|
||||
GB_ASSERT(found != nullptr);
|
||||
|
||||
String pkg_name = {};
|
||||
if (testing_proc->pkg != nullptr) {
|
||||
pkg_name = testing_proc->pkg->name;
|
||||
}
|
||||
lbValue v_pkg = lb_find_or_add_entity_string(m, pkg_name);
|
||||
lbValue v_name = lb_find_or_add_entity_string(m, name);
|
||||
lbValue v_proc = *found;
|
||||
|
||||
indices[1] = LLVMConstInt(lb_type(m, t_int), i, false);
|
||||
|
||||
LLVMValueRef vals[2] = {};
|
||||
vals[0] = v_name.value;
|
||||
vals[1] = v_proc.value;
|
||||
LLVMValueRef vals[3] = {};
|
||||
vals[0] = v_pkg.value;
|
||||
vals[1] = v_name.value;
|
||||
vals[2] = v_proc.value;
|
||||
GB_ASSERT(LLVMIsConstant(vals[0]));
|
||||
GB_ASSERT(LLVMIsConstant(vals[1]));
|
||||
GB_ASSERT(LLVMIsConstant(vals[2]));
|
||||
|
||||
LLVMValueRef dst = LLVMConstInBoundsGEP(all_tests_array.value, indices, gb_count_of(indices));
|
||||
LLVMValueRef src = LLVMConstNamedStruct(lbt_Internal_Test, vals, gb_count_of(vals));
|
||||
|
||||
Reference in New Issue
Block a user