From 84a4188c7214fdf0270f9f835e626fa214a98df0 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 15 Jun 2021 01:16:19 +0100 Subject: [PATCH] Fix #1017 --- src/llvm_backend.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 255959377..769f5be45 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -293,12 +293,15 @@ void lb_emit_slice_bounds_check(lbProcedure *p, Token token, lbValue low, lbValu bool lb_try_update_alignment(lbValue ptr, unsigned alignment) { LLVMValueRef addr_ptr = ptr.value; - if (LLVMGetAlignment(addr_ptr) < alignment) { - if (LLVMIsAAllocaInst(addr_ptr) || LLVMIsAGlobalValue(addr_ptr)) { - LLVMSetAlignment(addr_ptr, alignment); + if (LLVMIsAGlobalValue(addr_ptr) || LLVMIsAAllocaInst(addr_ptr) || LLVMIsALoadInst(addr_ptr)) { + if (LLVMGetAlignment(addr_ptr) < alignment) { + if (LLVMIsAAllocaInst(addr_ptr) || LLVMIsAGlobalValue(addr_ptr)) { + LLVMSetAlignment(addr_ptr, alignment); + } } + return LLVMGetAlignment(addr_ptr) >= alignment; } - return LLVMGetAlignment(addr_ptr) >= alignment; + return false; } bool lb_try_vector_cast(lbModule *m, lbValue ptr, LLVMTypeRef *vector_type_) {