aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/inlineasm/AsmStack.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2017-04-26 21:41:08 +0800
committerchriseth <chris@ethereum.org>2017-04-26 23:12:04 +0800
commitf3ec2ba39e7f4b85d148a7b696ef5af499fbb6fb (patch)
treebe9367a377cd81badbac4bbf6bdf5377586823b3 /libsolidity/inlineasm/AsmStack.cpp
parent68218387cf29b3ce7de72aa0348e68dbdae29751 (diff)
downloaddexon-solidity-f3ec2ba39e7f4b85d148a7b696ef5af499fbb6fb.tar.gz
dexon-solidity-f3ec2ba39e7f4b85d148a7b696ef5af499fbb6fb.tar.zst
dexon-solidity-f3ec2ba39e7f4b85d148a7b696ef5af499fbb6fb.zip
Refactor to combined scope and stack height info.
Diffstat (limited to 'libsolidity/inlineasm/AsmStack.cpp')
-rw-r--r--libsolidity/inlineasm/AsmStack.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/libsolidity/inlineasm/AsmStack.cpp b/libsolidity/inlineasm/AsmStack.cpp
index 5defae4c..c2a7d8ea 100644
--- a/libsolidity/inlineasm/AsmStack.cpp
+++ b/libsolidity/inlineasm/AsmStack.cpp
@@ -26,6 +26,7 @@
#include <libsolidity/inlineasm/AsmCodeGen.h>
#include <libsolidity/inlineasm/AsmPrinter.h>
#include <libsolidity/inlineasm/AsmAnalysis.h>
+#include <libsolidity/inlineasm/AsmAnalysisInfo.h>
#include <libsolidity/parsing/Scanner.h>
@@ -51,8 +52,8 @@ bool InlineAssemblyStack::parse(
return false;
*m_parserResult = std::move(*result);
- AsmAnalyzer::Scopes scopes;
- return (AsmAnalyzer(scopes, m_errors, _resolver)).analyze(*m_parserResult);
+ AsmAnalysisInfo analysisInfo;
+ return (AsmAnalyzer(analysisInfo, m_errors, _resolver)).analyze(*m_parserResult);
}
string InlineAssemblyStack::toString()
@@ -62,11 +63,11 @@ string InlineAssemblyStack::toString()
eth::Assembly InlineAssemblyStack::assemble()
{
- AsmAnalyzer::Scopes scopes;
- AsmAnalyzer analyzer(scopes, m_errors);
+ AsmAnalysisInfo analysisInfo;
+ AsmAnalyzer analyzer(analysisInfo, m_errors);
solAssert(analyzer.analyze(*m_parserResult), "");
CodeGenerator codeGen(m_errors);
- return codeGen.assemble(*m_parserResult, scopes);
+ return codeGen.assemble(*m_parserResult, analysisInfo);
}
bool InlineAssemblyStack::parseAndAssemble(
@@ -82,10 +83,10 @@ bool InlineAssemblyStack::parseAndAssemble(
return false;
solAssert(parserResult, "");
- AsmAnalyzer::Scopes scopes;
- AsmAnalyzer analyzer(scopes, errors, _identifierAccess.resolve);
+ AsmAnalysisInfo analysisInfo;
+ AsmAnalyzer analyzer(analysisInfo, errors, _identifierAccess.resolve);
solAssert(analyzer.analyze(*parserResult), "");
- CodeGenerator(errors).assemble(*parserResult, scopes, _assembly, _identifierAccess);
+ CodeGenerator(errors).assemble(*parserResult, analysisInfo, _assembly, _identifierAccess);
// At this point, the assembly might be messed up, but we should throw an
// internal compiler error anyway.