'Get abstract states for all predecessors of the node, merge them, and return the merged state.
:param node: The node in graph.
:return:     A merged state, or None if no predecessor is available.'

def _merge_state_from_predecessors(self, node):

    preds = self._graph_visitor.predecessors(node)
    states = [self._state_map[n] for n in preds if (n in self._state_map)]
    if (not states):
        return None
    return reduce((lambda s0, s1: self._merge_states(node, s0, s1)), states[1:], states[0])
