diff options
author | Alex Beregszaszi <alex@rtfs.hu> | 2018-02-06 17:53:49 +0800 |
---|---|---|
committer | Alex Beregszaszi <alex@rtfs.hu> | 2018-02-06 18:07:00 +0800 |
commit | 2cbbe5828191707f5e51ba699699bfa4dc6c3691 (patch) | |
tree | 7a7c908612a7e58c49ca16155f736a0288115a8d /libjulia/optimiser | |
parent | b0407cfac02bf8158385871e651591f9bee44ce0 (diff) | |
download | dexon-solidity-2cbbe5828191707f5e51ba699699bfa4dc6c3691.tar.gz dexon-solidity-2cbbe5828191707f5e51ba699699bfa4dc6c3691.tar.zst dexon-solidity-2cbbe5828191707f5e51ba699699bfa4dc6c3691.zip |
Support variable declarations without assignment in UnusedPruner
Diffstat (limited to 'libjulia/optimiser')
-rw-r--r-- | libjulia/optimiser/UnusedPruner.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libjulia/optimiser/UnusedPruner.cpp b/libjulia/optimiser/UnusedPruner.cpp index e33bef78..50f4d9f1 100644 --- a/libjulia/optimiser/UnusedPruner.cpp +++ b/libjulia/optimiser/UnusedPruner.cpp @@ -60,12 +60,14 @@ void UnusedPruner::operator()(Block& _block) [=](TypedName const& _typedName) { return used(_typedName.name); } )) { - if (!varDecl.value || MovableChecker(*varDecl.value).movable()) + if (!varDecl.value) + statement = Block{std::move(varDecl.location), {}}; + else if (MovableChecker(*varDecl.value).movable()) { subtractReferences(ReferencesCounter::countReferences(*varDecl.value)); statement = Block{std::move(varDecl.location), {}}; } - else if (varDecl.value && varDecl.variables.size() == 1) + else if (varDecl.variables.size() == 1) statement = ExpressionStatement{varDecl.location, FunctionalInstruction{ varDecl.location, solidity::Instruction::POP, |