aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Changelog.md3
-rw-r--r--libsolidity/analysis/TypeChecker.cpp4
2 files changed, 7 insertions, 0 deletions
diff --git a/Changelog.md b/Changelog.md
index a5a85eb5..d2efebce 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -12,6 +12,9 @@ Bugfixes:
* Code Generator: expect zero stack increase after `super` as an expression
* Inline assembly: support the `address` opcode
* Inline assembly: fix parsing of assignment after a label.
+ * Inline assembly: external variables of unsupported type (such as `this`, `super`, etc.)
+ are properly detected. They are not available in inline assembly and can be used as
+ local variable names.
### 0.4.2 (2016-09-17)
diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp
index ae7c13c8..b9b182c0 100644
--- a/libsolidity/analysis/TypeChecker.cpp
+++ b/libsolidity/analysis/TypeChecker.cpp
@@ -592,6 +592,10 @@ bool TypeChecker::visit(InlineAssembly const& _inlineAssembly)
unsigned pushes = 0;
if (dynamic_cast<FunctionDefinition const*>(declaration))
pushes = 1;
+ else if (dynamic_cast<MagicVariableDeclaration const*>(declaration))
+ {
+ return false;
+ }
else if (auto var = dynamic_cast<VariableDeclaration const*>(declaration))
{
if (var->isConstant())