aboutsummaryrefslogtreecommitdiffstats
path: root/CompilerContext.cpp
diff options
context:
space:
mode:
authorChristian <c@ethdev.com>2015-01-23 09:46:31 +0800
committerChristian <c@ethdev.com>2015-01-26 17:23:39 +0800
commitfd5899d03806d82e228da12f8cbe151f079ea41f (patch)
treef839426ef2d921062ac8206ced3089acd318496a /CompilerContext.cpp
parent7ded95c776717cf96e96dffb7425c86b47ad8b0e (diff)
downloaddexon-solidity-fd5899d03806d82e228da12f8cbe151f079ea41f.tar
dexon-solidity-fd5899d03806d82e228da12f8cbe151f079ea41f.tar.gz
dexon-solidity-fd5899d03806d82e228da12f8cbe151f079ea41f.tar.bz2
dexon-solidity-fd5899d03806d82e228da12f8cbe151f079ea41f.tar.lz
dexon-solidity-fd5899d03806d82e228da12f8cbe151f079ea41f.tar.xz
dexon-solidity-fd5899d03806d82e228da12f8cbe151f079ea41f.tar.zst
dexon-solidity-fd5899d03806d82e228da12f8cbe151f079ea41f.zip
Modifier overrides and callgraph analysis.
Diffstat (limited to 'CompilerContext.cpp')
-rw-r--r--CompilerContext.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/CompilerContext.cpp b/CompilerContext.cpp
index 96d1840e..ad1877ba 100644
--- a/CompilerContext.cpp
+++ b/CompilerContext.cpp
@@ -66,6 +66,11 @@ void CompilerContext::addFunction(FunctionDefinition const& _function)
m_virtualFunctionEntryLabels.insert(make_pair(_function.getName(), tag));
}
+void CompilerContext::addModifier(ModifierDefinition const& _modifier)
+{
+ m_functionModifiers.insert(make_pair(_modifier.getName(), &_modifier));
+}
+
bytes const& CompilerContext::getCompiledContract(const ContractDefinition& _contract) const
{
auto ret = m_compiledContracts.find(&_contract);
@@ -92,6 +97,13 @@ eth::AssemblyItem CompilerContext::getVirtualFunctionEntryLabel(FunctionDefiniti
return res->second.tag();
}
+ModifierDefinition const& CompilerContext::getFunctionModifier(string const& _name) const
+{
+ auto res = m_functionModifiers.find(_name);
+ solAssert(res != m_functionModifiers.end(), "Function modifier override not found.");
+ return *res->second;
+}
+
unsigned CompilerContext::getBaseStackOffsetOfVariable(Declaration const& _declaration) const
{
auto res = m_localVariables.find(&_declaration);