aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-03-14 18:15:08 +0000
committergingerBill <bill@gingerbill.org>2021-03-14 18:15:08 +0000
commit468ad4837b9f5705943433efd84e8d72625880d4 (patch)
treeedcd0cee1da651427f5414dc8ce1e35561abff0e /src/llvm_backend.cpp
parent2aa588209e784274136b516224372fdd677d3e8f (diff)
Add `pkg` field to `testing.Internal_Test`
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index ef08edaa4..eee0d2445 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -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));