aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/ast
diff options
context:
space:
mode:
authorYoichi Hirai <i@yoichihirai.com>2016-10-18 20:17:49 +0800
committerYoichi Hirai <i@yoichihirai.com>2016-10-18 20:17:49 +0800
commitd2470a3e39f5fb0ef4d06a2a6e1981f681477f28 (patch)
tree4d6b4f88d308a93b0208ac7216f0018436e83b55 /libsolidity/ast
parent0542df25df5c1de5a4b62524c1fa40097b131caa (diff)
downloaddexon-solidity-d2470a3e39f5fb0ef4d06a2a6e1981f681477f28.tar.gz
dexon-solidity-d2470a3e39f5fb0ef4d06a2a6e1981f681477f28.tar.zst
dexon-solidity-d2470a3e39f5fb0ef4d06a2a6e1981f681477f28.zip
`super`'s size on stack is zero, because the expression compiler does not push an address.
This is different from `this`, which is translated to `ADDRESS` instruction.
Diffstat (limited to 'libsolidity/ast')
-rw-r--r--libsolidity/ast/Types.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/libsolidity/ast/Types.h b/libsolidity/ast/Types.h
index 9173f39a..f65d25fb 100644
--- a/libsolidity/ast/Types.h
+++ b/libsolidity/ast/Types.h
@@ -623,6 +623,7 @@ public:
}
virtual unsigned storageBytes() const override { return 20; }
virtual bool canLiveOutsideStorage() const override { return true; }
+ virtual unsigned sizeOnStack() const override { return m_super ? 0 : 1; }
virtual bool isValueType() const override { return true; }
virtual std::string toString(bool _short) const override;
virtual std::string canonicalName(bool _addDataLocation) const override;