aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_general.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2024-07-15 14:49:20 +0100
committergingerBill <bill@gingerbill.org>2024-07-15 14:49:20 +0100
commit1e37eaf54daf885636ea3ad9606a2b54e01721f9 (patch)
tree207c49870eb711412d08394d5ee4b169797f5d73 /src/llvm_backend_general.cpp
parent5cefab8229514c308c4676bbd86db7a8b3d2c5f5 (diff)
Begin work for `bit_set[...; [N]T]` (not working)
Diffstat (limited to 'src/llvm_backend_general.cpp')
-rw-r--r--src/llvm_backend_general.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/llvm_backend_general.cpp b/src/llvm_backend_general.cpp
index bb04fc746..a91c1d1fe 100644
--- a/src/llvm_backend_general.cpp
+++ b/src/llvm_backend_general.cpp
@@ -1023,6 +1023,8 @@ gb_internal void lb_emit_store(lbProcedure *p, lbValue ptr, lbValue value) {
LLVMTypeRef rawptr_type = lb_type(p->module, t_rawptr);
LLVMTypeRef rawptr_ptr_type = LLVMPointerType(rawptr_type, 0);
LLVMBuildStore(p->builder, LLVMConstNull(rawptr_type), LLVMBuildBitCast(p->builder, ptr.value, rawptr_ptr_type, ""));
+ } else if (is_type_bit_set(a)) {
+ lb_mem_zero_ptr(p, ptr.value, a, 1);
} else if (lb_sizeof(src_t) <= lb_max_zero_init_size()) {
LLVMBuildStore(p->builder, LLVMConstNull(src_t), ptr.value);
} else {