@@ -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
17411742void 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