aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_general.cpp
diff options
context:
space:
mode:
authorUsername-Leon <leonardo.temperanza@gmail.com>2025-10-15 15:30:06 +0200
committerUsername-Leon <leonardo.temperanza@gmail.com>2025-10-15 15:30:06 +0200
commite10093bd991334789031df9ed587d27823ca90dd (patch)
tree85815617a4d2933cf7ab677b335995b9dac98ff7 /src/llvm_backend_general.cpp
parentd203dff09f147ffd30a3627de1a31408b6f28688 (diff)
Fix wrong alignment for typed load directive.
Diffstat (limited to 'src/llvm_backend_general.cpp')
-rw-r--r--src/llvm_backend_general.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/llvm_backend_general.cpp b/src/llvm_backend_general.cpp
index 123af51f5..c56d0d488 100644
--- a/src/llvm_backend_general.cpp
+++ b/src/llvm_backend_general.cpp
@@ -2982,7 +2982,11 @@ gb_internal lbValue lb_find_or_add_entity_string_byte_slice_with_type(lbModule *
Type *bt = base_type(slice_type);
Type *elem = bt->Slice.elem;
i64 sz = type_size_of(elem);
+ i64 align = type_align_of(elem);
GB_ASSERT(sz > 0);
+ GB_ASSERT(align > 0);
+
+ LLVMSetAlignment(global_data, (u32)align);
ptr = LLVMConstPointerCast(ptr, lb_type(m, alloc_type_pointer(elem)));
data_len /= sz;
}
@@ -3037,7 +3041,11 @@ gb_internal lbValue lb_find_or_add_entity_string16_slice_with_type(lbModule *m,
Type *bt = base_type(slice_type);
Type *elem = bt->Slice.elem;
i64 sz = type_size_of(elem);
+ i64 align = type_align_of(elem);
GB_ASSERT(sz > 0);
+ GB_ASSERT(align > 0);
+
+ LLVMSetAlignment(global_data, (u32)align);
ptr = LLVMConstPointerCast(ptr, lb_type(m, alloc_type_pointer(elem)));
data_len /= sz;
}