codegen: cleanup value types before storing them

This commit is contained in:
Yoichi Hirai 2016-11-15 17:54:09 +01:00
parent feb10d015f
commit 5b8a773986
No known key found for this signature in database
GPG Key ID: E7B75D080FCF7992

View File

@ -221,6 +221,11 @@ void StorageItem::storeValue(Type const& _sourceType, SourceLocation const& _loc
{
solAssert(m_dataType->storageBytes() <= 32, "Invalid storage bytes size.");
solAssert(m_dataType->storageBytes() > 0, "Invalid storage bytes size.");
m_context << Instruction::SWAP2;
CompilerUtils(m_context).convertType(*m_dataType, *m_dataType, true);
m_context << Instruction::SWAP2;
if (m_dataType->storageBytes() == 32)
{
solAssert(m_dataType->sizeOnStack() == 1, "Invalid stack size.");