aboutsummaryrefslogtreecommitdiffstats
path: root/libyul/optimiser/DataFlowAnalyzer.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-12-13 19:33:03 +0800
committerchriseth <chris@ethereum.org>2018-12-13 23:02:30 +0800
commitb11d413720763e5d4a95260846293a15af7d3b54 (patch)
tree9384c8d7a4cccdc7e2db2176481978779bc17baf /libyul/optimiser/DataFlowAnalyzer.cpp
parent996bfb2a83bf1d99192575fa05ba43e4bc05ef0c (diff)
downloaddexon-solidity-b11d413720763e5d4a95260846293a15af7d3b54.tar.gz
dexon-solidity-b11d413720763e5d4a95260846293a15af7d3b54.tar.zst
dexon-solidity-b11d413720763e5d4a95260846293a15af7d3b54.zip
Consider return variables to be zero initially.
Diffstat (limited to 'libyul/optimiser/DataFlowAnalyzer.cpp')
-rw-r--r--libyul/optimiser/DataFlowAnalyzer.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/libyul/optimiser/DataFlowAnalyzer.cpp b/libyul/optimiser/DataFlowAnalyzer.cpp
index 7bff2c89..c8d236dc 100644
--- a/libyul/optimiser/DataFlowAnalyzer.cpp
+++ b/libyul/optimiser/DataFlowAnalyzer.cpp
@@ -96,7 +96,10 @@ void DataFlowAnalyzer::operator()(FunctionDefinition& _fun)
for (auto const& parameter: _fun.parameters)
m_variableScopes.back().variables.emplace(parameter.name);
for (auto const& var: _fun.returnVariables)
+ {
m_variableScopes.back().variables.emplace(var.name);
+ handleAssignment({var.name}, nullptr);
+ }
ASTModifier::operator()(_fun);
popScope();