aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_general.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-09-27 00:18:19 +0100
committergingerBill <bill@gingerbill.org>2022-09-27 00:18:19 +0100
commit0fe006157e6e6f07722bcf4eb7c51a8db07d008c (patch)
treeeb7f2a8fc70f089012b0b5a5b018ba7797a21efd /src/llvm_backend_general.cpp
parent4d208dc0922b713bc7351bfe2e846e3ac957aff7 (diff)
Remove extra pointer indirection
Diffstat (limited to 'src/llvm_backend_general.cpp')
-rw-r--r--src/llvm_backend_general.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/llvm_backend_general.cpp b/src/llvm_backend_general.cpp
index ed77eb975..0dabee076 100644
--- a/src/llvm_backend_general.cpp
+++ b/src/llvm_backend_general.cpp
@@ -1536,7 +1536,8 @@ LLVMTypeRef lb_type_internal_for_procedures_raw(lbModule *m, Type *type) {
bool param_is_by_ptr = false;
LLVMTypeRef param_type = nullptr;
if (e->flags & EntityFlag_ByPtr) {
- param_type = lb_type(m, alloc_type_pointer(e_type));
+ // it will become a pointer afterwards by making it indirect
+ param_type = lb_type(m, e_type);
param_is_by_ptr = true;
} else if (is_type_boolean(e_type) &&
type_size_of(e_type) <= 1) {
@@ -1578,7 +1579,6 @@ LLVMTypeRef lb_type_internal_for_procedures_raw(lbModule *m, Type *type) {
for_array(j, ft->args) {
if (params_by_ptr[j]) {
// NOTE(bill): The parameter needs to be passed "indirectly", override it
- GB_ASSERT(ft->args[j].kind == lbArg_Direct);
ft->args[j].kind = lbArg_Indirect;
}
}