From f3ec2ba39e7f4b85d148a7b696ef5af499fbb6fb Mon Sep 17 00:00:00 2001 From: chriseth Date: Wed, 26 Apr 2017 15:41:08 +0200 Subject: Refactor to combined scope and stack height info. --- libsolidity/analysis/ReferencesResolver.cpp | 7 +++++-- libsolidity/analysis/TypeChecker.cpp | 10 ++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) (limited to 'libsolidity/analysis') diff --git a/libsolidity/analysis/ReferencesResolver.cpp b/libsolidity/analysis/ReferencesResolver.cpp index a8231b13..9433976a 100644 --- a/libsolidity/analysis/ReferencesResolver.cpp +++ b/libsolidity/analysis/ReferencesResolver.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -190,8 +191,10 @@ bool ReferencesResolver::visit(InlineAssembly const& _inlineAssembly) _inlineAssembly.annotation().externalReferences[&_identifier].declaration = declarations.front(); return size_t(1); }; - assembly::AsmAnalyzer::Scopes scopes; - assembly::AsmAnalyzer(scopes, errorsIgnored, resolver).analyze(_inlineAssembly.operations()); + + // Will be re-generated later with correct information + assembly::AsmAnalysisInfo analysisInfo; + assembly::AsmAnalyzer(analysisInfo, errorsIgnored, resolver).analyze(_inlineAssembly.operations()); return false; } diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp index 08a49f51..38cdc1f8 100644 --- a/libsolidity/analysis/TypeChecker.cpp +++ b/libsolidity/analysis/TypeChecker.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include using namespace std; @@ -705,8 +706,13 @@ bool TypeChecker::visit(InlineAssembly const& _inlineAssembly) ref->second.valueSize = 1; return size_t(1); }; - solAssert(_inlineAssembly.annotation().scopes.empty(), ""); - assembly::AsmAnalyzer analyzer(_inlineAssembly.annotation().scopes, m_errors, identifierAccess); + solAssert(!_inlineAssembly.annotation().analysisInfo, ""); + _inlineAssembly.annotation().analysisInfo = make_shared(); + assembly::AsmAnalyzer analyzer( + *_inlineAssembly.annotation().analysisInfo, + m_errors, + identifierAccess + ); if (!analyzer.analyze(_inlineAssembly.operations())) return false; return true; -- cgit