aboutsummaryrefslogtreecommitdiff
path: root/src/ir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ir.cpp')
-rw-r--r--src/ir.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/ir.cpp b/src/ir.cpp
index 3022fd869..5e91d4f30 100644
--- a/src/ir.cpp
+++ b/src/ir.cpp
@@ -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);
}