Fix #1017
This commit is contained in:
1 parent
31f1e0aeae
commit
84a4188c72
1 file changed
+7
-4
@@ -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) {
|
bool lb_try_update_alignment(lbValue ptr, unsigned alignment) {
|
||||||
LLVMValueRef addr_ptr = ptr.value;
|
LLVMValueRef addr_ptr = ptr.value;
|
||||||
if (LLVMGetAlignment(addr_ptr) < alignment) {
|
if (LLVMIsAGlobalValue(addr_ptr) || LLVMIsAAllocaInst(addr_ptr) || LLVMIsALoadInst(addr_ptr)) {
|
||||||
if (LLVMIsAAllocaInst(addr_ptr) || LLVMIsAGlobalValue(addr_ptr)) {
|
if (LLVMGetAlignment(addr_ptr) < alignment) {
|
||||||
LLVMSetAlignment(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_) {
|
bool lb_try_vector_cast(lbModule *m, lbValue ptr, LLVMTypeRef *vector_type_) {
|
||||||
|
|||||||
Reference in new issue
Block a user