Skip to content

Commit 7d6daf3

Browse files
Fix use of ArrayRef and mutable arrays in loops (#529)
1 parent 00e75c7 commit 7d6daf3

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

lib/BC/Util.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1779,17 +1779,18 @@ llvm::Value *LoadFromMemory(const IntrinsicTable &intrinsics,
17791779
llvm::ArrayType::get(llvm::Type::getInt8Ty(context), size);
17801780
auto byte_array =
17811781
ir.CreateBitCast(res, llvm::PointerType::get(i8_array, 0));
1782-
llvm::Value *gep_indices[2] = {
1783-
llvm::ConstantInt::get(index_type, 0, false), nullptr};
17841782

1783+
auto gep_zero = llvm::ConstantInt::get(index_type, 0, false);
17851784
// Load one byte at a time from memory, and store it into
17861785
// `res`.
17871786
for (auto i = 0U; i < size; ++i) {
1788-
args_2[1] = ir.CreateAdd(
1787+
llvm::Value *gep_indices[2] = {
1788+
gep_zero, llvm::ConstantInt::get(index_type, i, false)};
1789+
auto call_arg_addr = ir.CreateAdd(
17891790
addr, llvm::ConstantInt::get(addr->getType(), i, false));
1790-
auto byte = ir.CreateCall(intrinsics.read_memory_8, args_2);
1791-
gep_indices[1] = llvm::ConstantInt::get(index_type, i, false);
1792-
auto byte_ptr = ir.CreateInBoundsGEP(i8_array, byte_array, gep_indices);
1791+
llvm::Value* call_args[2] = {mem_ptr, call_arg_addr};
1792+
auto byte = ir.CreateCall(intrinsics.read_memory_8, llvm::makeArrayRef(call_args));
1793+
auto byte_ptr = ir.CreateInBoundsGEP(i8_array, byte_array, llvm::makeArrayRef(gep_indices));
17931794
ir.CreateStore(byte, byte_ptr);
17941795
}
17951796

0 commit comments

Comments
 (0)