aboutsummaryrefslogtreecommitdiffstats
path: root/libevmasm/ControlFlowGraph.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libevmasm/ControlFlowGraph.cpp')
-rw-r--r--libevmasm/ControlFlowGraph.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/libevmasm/ControlFlowGraph.cpp b/libevmasm/ControlFlowGraph.cpp
index 61b24e4b..d4801562 100644
--- a/libevmasm/ControlFlowGraph.cpp
+++ b/libevmasm/ControlFlowGraph.cpp
@@ -250,10 +250,11 @@ void ControlFlowGraph::gatherKnowledge()
KnownStatePointer state = item.state;
if (block.startState)
{
- if (m_joinKnowledge)
- state->reduceToCommonKnowledge(*block.startState, !item.blocksSeen.count(item.blockId));
- else
+ // We call reduceToCommonKnowledge even in the non-join setting to get the correct
+ // sequence number
+ if (!m_joinKnowledge)
state->reset();
+ state->reduceToCommonKnowledge(*block.startState, !item.blocksSeen.count(item.blockId));
if (*state == *block.startState)
continue;
}