aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/inlineasm/AsmAnalysis.h
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2017-06-14 20:12:33 +0800
committerGitHub <noreply@github.com>2017-06-14 20:12:33 +0800
commit43cfab70d0dfb7e5a6058ba2a84874f7622abb2f (patch)
treee93dd49913dfcde29c52a9c42bdcb9e0ae66bfa6 /libsolidity/inlineasm/AsmAnalysis.h
parentc99c1c76f7ce2963b1401b53676ca3bbb0eadbea (diff)
parent154002cda05a75203b625d23ce507787bd5fa5e4 (diff)
downloaddexon-solidity-43cfab70d0dfb7e5a6058ba2a84874f7622abb2f.tar.gz
dexon-solidity-43cfab70d0dfb7e5a6058ba2a84874f7622abb2f.tar.zst
dexon-solidity-43cfab70d0dfb7e5a6058ba2a84874f7622abb2f.zip
Merge pull request #2389 from ethereum/moveLabelIDs
Move LabelIDs to generation phase.
Diffstat (limited to 'libsolidity/inlineasm/AsmAnalysis.h')
-rw-r--r--libsolidity/inlineasm/AsmAnalysis.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/libsolidity/inlineasm/AsmAnalysis.h b/libsolidity/inlineasm/AsmAnalysis.h
index 55b409ba..2516722a 100644
--- a/libsolidity/inlineasm/AsmAnalysis.h
+++ b/libsolidity/inlineasm/AsmAnalysis.h
@@ -22,6 +22,8 @@
#include <libsolidity/interface/Exceptions.h>
+#include <libsolidity/inlineasm/AsmScope.h>
+
#include <libjulia/backends/evm/AbstractAssembly.h>
#include <boost/variant.hpp>
@@ -51,9 +53,6 @@ struct FunctionCall;
struct Switch;
using Statement = boost::variant<Instruction, Literal, Label, StackAssignment, Identifier, Assignment, FunctionCall, FunctionalInstruction, VariableDeclaration, FunctionDefinition, Switch, Block>;
-
-struct Scope;
-
struct AsmAnalysisInfo;
/**
@@ -102,6 +101,9 @@ private:
int m_stackHeight = 0;
julia::ExternalIdentifierAccess::Resolver m_resolver;
Scope* m_currentScope = nullptr;
+ /// Variables that are active at the current point in assembly (as opposed to
+ /// "part of the scope but not yet declared")
+ std::set<Scope::Variable const*> m_activeVariables;
AsmAnalysisInfo& m_info;
ErrorReporter& m_errorReporter;
bool m_julia = false;