aboutsummaryrefslogtreecommitdiffstats
path: root/ExpressionCompiler.cpp
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2015-06-30 17:54:51 +0800
committerchriseth <c@ethdev.com>2015-07-03 23:25:29 +0800
commitcad3379306cd4f32f51bc9f993498a830d134226 (patch)
tree06f9b50fbb7e796551acc68a334ecd091370f851 /ExpressionCompiler.cpp
parentad459207a3c219d60918545de4a0f34040f3388f (diff)
downloaddexon-solidity-cad3379306cd4f32f51bc9f993498a830d134226.tar
dexon-solidity-cad3379306cd4f32f51bc9f993498a830d134226.tar.gz
dexon-solidity-cad3379306cd4f32f51bc9f993498a830d134226.tar.bz2
dexon-solidity-cad3379306cd4f32f51bc9f993498a830d134226.tar.lz
dexon-solidity-cad3379306cd4f32f51bc9f993498a830d134226.tar.xz
dexon-solidity-cad3379306cd4f32f51bc9f993498a830d134226.tar.zst
dexon-solidity-cad3379306cd4f32f51bc9f993498a830d134226.zip
Memory structs.
Diffstat (limited to 'ExpressionCompiler.cpp')
-rw-r--r--ExpressionCompiler.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/ExpressionCompiler.cpp b/ExpressionCompiler.cpp
index 59907b14..b36c7283 100644
--- a/ExpressionCompiler.cpp
+++ b/ExpressionCompiler.cpp
@@ -155,8 +155,6 @@ bool ExpressionCompiler::visit(Assignment const& _assignment)
TypePointer type = _assignment.getRightHandSide().getType();
if (!_assignment.getType()->dataStoredIn(DataLocation::Storage))
{
- //@todo we should delay conversion here if RHS is not in memory, LHS is a MemoryItem
- // and not dynamically-sized.
utils().convertType(*type, *_assignment.getType());
type = _assignment.getType();
}
@@ -691,7 +689,8 @@ void ExpressionCompiler::endVisit(MemberAccess const& _memberAccess)
}
case DataLocation::Memory:
{
- solAssert(false, "Member access for memory structs not yet implemented.");
+ m_context << type.memoryOffsetOfMember(member) << eth::Instruction::ADD;
+ setLValue<MemoryItem>(_memberAccess, *_memberAccess.getType());
break;
}
default: