diff options
| author | Barinzaya <barinzaya@gmail.com> | 2025-04-24 14:15:22 -0400 |
|---|---|---|
| committer | Barinzaya <barinzaya@gmail.com> | 2025-04-24 14:21:21 -0400 |
| commit | b41a776027b0b4796edc85217c5c607e5498035d (patch) | |
| tree | a5d494f72254c1590b8c28cca85b3234055a3649 /src/llvm_backend.cpp | |
| parent | cfb478808e7dae48f3a40fe7e40927c5e38a5d1d (diff) | |
Correctly align global and static variables.
This can be important if matrices or SIMD vectors are being used in
global or static variables, as otherwise it may result in crashes due to
aligned instructions accessing misaligned variables.
Diffstat (limited to 'src/llvm_backend.cpp')
| -rw-r--r-- | src/llvm_backend.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 083a1d90e..1ada1c070 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -2598,6 +2598,7 @@ gb_internal bool lb_generate_code(lbGenerator *gen) { LLVMSetLinkage(g.value, USE_SEPARATE_MODULES ? LLVMWeakAnyLinkage : LLVMInternalLinkage); } lb_set_linkage_from_entity_flags(m, g.value, e->flags); + LLVMSetAlignment(g.value, type_align_of(e->type)); if (e->Variable.link_section.len > 0) { LLVMSetSection(g.value, alloc_cstring(permanent_allocator(), e->Variable.link_section)); |