diff options
author | chriseth <c@ethdev.com> | 2017-02-17 02:21:33 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2017-02-20 19:33:22 +0800 |
commit | c0961664f9666e5f4e8e35e80ef9a71426f6c394 (patch) | |
tree | 932b523f9f470c52f211dd865549262fb3c342f5 | |
parent | 5cd01ab7d1efc108c3dc711ca76b4f75be4ac5c6 (diff) | |
download | dexon-solidity-c0961664f9666e5f4e8e35e80ef9a71426f6c394.tar.gz dexon-solidity-c0961664f9666e5f4e8e35e80ef9a71426f6c394.tar.zst dexon-solidity-c0961664f9666e5f4e8e35e80ef9a71426f6c394.zip |
Deposit one stack item for non-value types in inline assembly type checking.
-rw-r--r-- | Changelog.md | 1 | ||||
-rw-r--r-- | libsolidity/analysis/TypeChecker.cpp | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/Changelog.md b/Changelog.md index 72947dab..45aaf04a 100644 --- a/Changelog.md +++ b/Changelog.md @@ -11,6 +11,7 @@ Bugfixes: * Commandline interface: Do not try creating paths ``.`` and ``..``. * Type system: Fix a crash caused by continuing on fatal errors in the code. * Type system: Disallow arrays with negative length. + * Inline assembly: Charge one stack slot for non-value types during analysis. ### 0.4.9 (2017-01-31) diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp index 28cb9acc..4025831e 100644 --- a/libsolidity/analysis/TypeChecker.cpp +++ b/libsolidity/analysis/TypeChecker.cpp @@ -611,7 +611,7 @@ bool TypeChecker::visit(InlineAssembly const& _inlineAssembly) fatalTypeError(SourceLocation(), "Constant variables not yet implemented for inline assembly."); if (var->isLocalVariable()) pushes = var->type()->sizeOnStack(); - else if (var->type()->isValueType()) + else if (!var->type()->isValueType()) pushes = 1; else pushes = 2; // slot number, intra slot offset |