aboutsummaryrefslogtreecommitdiffstats
path: root/solc/CommandLineInterface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'solc/CommandLineInterface.cpp')
-rw-r--r--solc/CommandLineInterface.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/solc/CommandLineInterface.cpp b/solc/CommandLineInterface.cpp
index 7f64d8ac..e2baca7f 100644
--- a/solc/CommandLineInterface.cpp
+++ b/solc/CommandLineInterface.cpp
@@ -1022,12 +1022,16 @@ void CommandLineInterface::handleAst(string const& _argStr)
map<ASTNode const*, eth::GasMeter::GasConsumption> gasCosts;
for (auto const& contract : m_compiler->contractNames())
{
- auto ret = GasEstimator::breakToStatementLevel(
- GasEstimator(m_evmVersion).structuralEstimation(*m_compiler->runtimeAssemblyItems(contract), asts),
- asts
- );
- for (auto const& it: ret)
- gasCosts[it.first] += it.second;
+ if (auto const* assemblyItems = m_compiler->runtimeAssemblyItems(contract))
+ {
+ auto ret = GasEstimator::breakToStatementLevel(
+ GasEstimator(m_evmVersion).structuralEstimation(*assemblyItems, asts),
+ asts
+ );
+ for (auto const& it: ret)
+ gasCosts[it.first] += it.second;
+ }
+
}
bool legacyFormat = !m_args.count(g_argAstCompactJson);