From d745dd6542d488432453035763211fdad78c3a06 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Tue, 23 May 2017 20:51:33 +0100 Subject: Visit case bodies in scope filler --- libsolidity/inlineasm/AsmScopeFiller.cpp | 9 +++++++++ libsolidity/inlineasm/AsmScopeFiller.h | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/libsolidity/inlineasm/AsmScopeFiller.cpp b/libsolidity/inlineasm/AsmScopeFiller.cpp index 05b1b211..7eb6a9ed 100644 --- a/libsolidity/inlineasm/AsmScopeFiller.cpp +++ b/libsolidity/inlineasm/AsmScopeFiller.cpp @@ -97,6 +97,15 @@ bool ScopeFiller::operator()(assembly::FunctionDefinition const& _funDef) return success; } +bool ScopeFiller::operator()(Switch const& _switch) +{ + bool success = true; + for (auto const& _case: _switch.cases) + if (!(*this)(_case.body)) + success = false; + return success; +} + bool ScopeFiller::operator()(Block const& _block) { bool success = true; diff --git a/libsolidity/inlineasm/AsmScopeFiller.h b/libsolidity/inlineasm/AsmScopeFiller.h index 0f5a5dd6..c7179b3b 100644 --- a/libsolidity/inlineasm/AsmScopeFiller.h +++ b/libsolidity/inlineasm/AsmScopeFiller.h @@ -70,7 +70,7 @@ public: bool operator()(assembly::VariableDeclaration const& _variableDeclaration); bool operator()(assembly::FunctionDefinition const& _functionDefinition); bool operator()(assembly::FunctionCall const&) { return true; } - bool operator()(assembly::Switch const&) { return true; }; + bool operator()(assembly::Switch const& _switch); bool operator()(assembly::Block const& _block); private: -- cgit