diff options
Diffstat (limited to 'libevmasm/ControlFlowGraph.cpp')
-rw-r--r-- | libevmasm/ControlFlowGraph.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libevmasm/ControlFlowGraph.cpp b/libevmasm/ControlFlowGraph.cpp index fc2144c7..61b24e4b 100644 --- a/libevmasm/ControlFlowGraph.cpp +++ b/libevmasm/ControlFlowGraph.cpp @@ -250,7 +250,10 @@ void ControlFlowGraph::gatherKnowledge() KnownStatePointer state = item.state; if (block.startState) { - state->reduceToCommonKnowledge(*block.startState, !item.blocksSeen.count(item.blockId)); + if (m_joinKnowledge) + state->reduceToCommonKnowledge(*block.startState, !item.blocksSeen.count(item.blockId)); + else + state->reset(); if (*state == *block.startState) continue; } |