'Get successors of a node in the control flow graph.
:param CFGNode basic_block:             The node.
:param bool excluding_fakeret:      True if you want to exclude all successors that is connected to the node
with a fakeret edge.
:param str or None jumpkind:        Only return successors with the specified jumpkind. This argument will be
ignored if set to None.
:return:                            A list of successors
:rtype:                             list'

def get_successors(self, basic_block, excluding_fakeret=True, jumpkind=None):

    if (jumpkind is not None):
        if (excluding_fakeret and (jumpkind == 'Ijk_FakeRet')):
            return []
    if ((not excluding_fakeret) and (jumpkind is None)):
        if (basic_block in self._graph):
            return self._graph.successors(basic_block)
        return []
    successors = []
    for (_, suc, data) in self._graph.out_edges_iter([basic_block], data=True):
        jk = data['jumpkind']
        if (jumpkind is not None):
            if (jumpkind == jk):
                successors.append(suc)
        elif excluding_fakeret:
            if (jk != 'Ijk_FakeRet'):
                successors.append(suc)
        else:
            successors.append(suc)
    return successors
