'Returns the basic block at which the paths diverged.
:param other: The other Path.
:returns:     The address of the basic block.'

def divergence_addr(self, other):

    trace1 = self.addr_trace.hardcopy
    trace2 = other.addr_trace.hardcopy
    for i in range(max([len(trace1), len(trace2)])):
        if (i > len(trace1)):
            return trace2[(i - 1)]
        elif (i > len(trace2)):
            return trace1[(i - 1)]
        elif (trace1[i] != trace2[i]):
            return trace1[(i - 1)]
