Fix initializing mapping return variables.

This commit is contained in:
chriseth 2020-11-11 18:03:19 +01:00
parent be7b2c3725
commit 01d7d50750
2 changed files with 5 additions and 1 deletions

View File

@ -208,7 +208,9 @@ void IRGeneratorForStatements::initializeLocalVar(VariableDeclaration const& _va
solAssert(m_context.isLocalVariable(_varDecl), "Must be a local variable.");
auto const* type = _varDecl.type();
if (auto const* refType = dynamic_cast<ReferenceType const*>(type))
if (dynamic_cast<MappingType const*>(type))
return;
else if (auto const* refType = dynamic_cast<ReferenceType const*>(type))
if (refType->dataStoredIn(DataLocation::Storage) && refType->isPointer())
return;

View File

@ -17,6 +17,8 @@ contract test {
return (a[0], a[1], a[2], b[0], b[1], b[2]);
}
}
// ====
// compileViaYul: also
// ----
// g() -> 0, 42, 0, 0, 84, 21
// h() -> 0, 42, 0, 0, 84, 17