Skip to content

Commit e139e3c

Browse files
committed
LLVMCodeBuilder: Add missing ValueData padding
1 parent f982aae commit e139e3c

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/dev/engine/internal/llvm/llvmcodebuilder.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1735,7 +1735,8 @@ void LLVMCodeBuilder::createValueCopy(llvm::Value *source, llvm::Value *target)
17351735
// NOTE: This doesn't copy strings, but only the pointers
17361736
copyStructField(source, target, 0, m_valueDataType, m_builder.getInt64Ty()); // value
17371737
copyStructField(source, target, 1, m_valueDataType, m_builder.getInt32Ty()); // type
1738-
copyStructField(source, target, 2, m_valueDataType, m_builder.getInt64Ty()); // string size
1738+
/* 2: padding */
1739+
copyStructField(source, target, 3, m_valueDataType, m_builder.getInt64Ty()); // string size
17391740
}
17401741

17411742
void LLVMCodeBuilder::copyStructField(llvm::Value *source, llvm::Value *target, int index, llvm::StructType *structType, llvm::Type *fieldType)
@@ -1764,7 +1765,8 @@ llvm::Value *LLVMCodeBuilder::createValue(LLVMRegisterPtr reg)
17641765
value = llvm::ConstantExpr::getBitCast(value, m_valueDataType->getElementType(0));
17651766

17661767
llvm::Constant *type = m_builder.getInt32(static_cast<uint32_t>(reg->constValue.type()));
1767-
llvm::Constant *constValue = llvm::ConstantStruct::get(m_valueDataType, { value, type, m_builder.getInt64(0) });
1768+
llvm::Constant *padding = m_builder.getInt32(0);
1769+
llvm::Constant *constValue = llvm::ConstantStruct::get(m_valueDataType, { value, type, padding, m_builder.getInt64(0) });
17681770
m_builder.CreateStore(constValue, ret);
17691771

17701772
return ret;

0 commit comments

Comments
 (0)