(self, def_)
:param Definition def_: The reaching definition of a variable.
        :return:                The variable that is defined.
def _find_variable_from_definition(self, def_):
        """

        :param Definition def_: The reaching definition of a variable.
        :return:                The variable that is defined.
        """

        if def_.codeloc.block_addr != self.block.addr:
            l.warning("TODO: The definition comes from a different block %#x.", def_.codeloc.block_addr)
            return None

        stmt = self.block.statements[def_.codeloc.stmt_idx]
        if type(stmt) is Stmt.Assignment:
            return stmt.dst
        elif type(stmt) is Stmt.Store:
            return stmt.addr
        else:
            l.warning("TODO: Unsupported statement type %s for definitions.", type(stmt))
            return None
def _find_variable_from_definition ( self , def_ ) : if def_ . codeloc . block_addr != self . block . addr : l . warning ( "TODO: The definition comes from a different block %#x." , def_ . codeloc . block_addr ) return None stmt = self . block . statements [ def_ . codeloc . stmt_idx ] if type ( stmt ) is Stmt . Assignment : return stmt . dst elif type ( stmt ) is Stmt . Store : return stmt . addr else : l . warning ( "TODO: Unsupported statement type %s for definitions." , type ( stmt ) ) return None