aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_general.cpp
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2025-10-15 18:04:24 +0200
committerJeroen van Rijn <Kelimion@users.noreply.github.com>2025-10-15 18:04:24 +0200
commitfaa9222fefc831963dd258e3c040333e6d580bb0 (patch)
tree586b0341c726a27177cbaafd6836edb0e11638c3 /src/llvm_backend_general.cpp
parent4b8751bebdbf40528c2af8ff5a4ef38c1ab429cc (diff)
Set minimum #load(file, type) alignment to 16 bytes
Diffstat (limited to 'src/llvm_backend_general.cpp')
-rw-r--r--src/llvm_backend_general.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/llvm_backend_general.cpp b/src/llvm_backend_general.cpp
index aa6f7e014..4ebb40d96 100644
--- a/src/llvm_backend_general.cpp
+++ b/src/llvm_backend_general.cpp
@@ -2995,11 +2995,12 @@ gb_internal lbValue lb_find_or_add_entity_string_byte_slice_with_type(lbModule *
} else {
ptr = LLVMConstNull(lb_type(m, t_u8_ptr));
}
+ i64 align = MINIMUM_SLICE_ALIGNMENT;
if (!is_type_u8_slice(slice_type)) {
Type *bt = base_type(slice_type);
Type *elem = bt->Slice.elem;
i64 sz = type_size_of(elem);
- i64 align = type_align_of(elem);
+ align = gb_max(type_align_of(elem), align);
GB_ASSERT(sz > 0);
GB_ASSERT(align > 0);
@@ -3054,11 +3055,12 @@ gb_internal lbValue lb_find_or_add_entity_string16_slice_with_type(lbModule *m,
} else {
ptr = LLVMConstNull(lb_type(m, t_u8_ptr));
}
+ i64 align = MINIMUM_SLICE_ALIGNMENT;
if (!is_type_u16_slice(slice_type)) {
Type *bt = base_type(slice_type);
Type *elem = bt->Slice.elem;
i64 sz = type_size_of(elem);
- i64 align = type_align_of(elem);
+ align = gb_max(type_align_of(elem), align);
GB_ASSERT(sz > 0);
GB_ASSERT(align > 0);