(self, cfgnode: CFGNode, excluding_fakeret: bool=True,
                         jumpkind: Optional[str]=None)
return predecessors
Get predecessors of a node in the control flow graph.

        :param cfgnode:             The node.
        :param excluding_fakeret:   True if you want to exclude all predecessors that is connected to the node with a
                                    fakeret edge.
        :param jumpkind:            Only return predecessors with the specified jumpkind. This argument will be ignored
                                    if set to None.
        :return:                    A list of predecessors
Get predecessors of a node in the control flow graph.
Get predecessors of a node in the control flow graph .
def get_predecessors(self, cfgnode: CFGNode, excluding_fakeret: bool=True,
                         jumpkind: Optional[str]=None) -> List[CFGNode]:
        """
        Get predecessors of a node in the control flow graph.

        :param cfgnode:             The node.
        :param excluding_fakeret:   True if you want to exclude all predecessors that is connected to the node with a
                                    fakeret edge.
        :param jumpkind:            Only return predecessors with the specified jumpkind. This argument will be ignored
                                    if set to None.
        :return:                    A list of predecessors
        """

        if excluding_fakeret and jumpkind == 'Ijk_FakeRet':
            return [ ]

        if not excluding_fakeret and jumpkind is None:
            # fast path
            if cfgnode in self.graph:
                return list(self.graph.predecessors(cfgnode))
            return [ ]

        predecessors = []
        for pred, _, data in self.graph.in_edges([cfgnode], data=True):
            jk = data['jumpkind']
            if jumpkind is not None:
                if jk == jumpkind:
                    predecessors.append(pred)
            elif excluding_fakeret:
                if jk != 'Ijk_FakeRet':
                    predecessors.append(pred)
            else:
                predecessors.append(pred)
        return predecessors
def get_predecessors ( self , cfgnode : CFGNode , excluding_fakeret : bool = True , jumpkind : Optional [ str ] = None ) -> List [ CFGNode ] : if excluding_fakeret and jumpkind == 'Ijk_FakeRet' : return [ ] if not excluding_fakeret and jumpkind is None : # fast path if cfgnode in self . graph : return list ( self . graph . predecessors ( cfgnode ) ) return [ ] predecessors = [ ] for pred , _ , data in self . graph . in_edges ( [ cfgnode ] , data = True ) : jk = data [ 'jumpkind' ] if jumpkind is not None : if jk == jumpkind : predecessors . append ( pred ) elif excluding_fakeret : if jk != 'Ijk_FakeRet' : predecessors . append ( pred ) else : predecessors . append ( pred ) return predecessors