Skip to content

getPts method missing from pysvf.AndersenWaveDiff and pysvf.AndersenWaveDiff_WPA #40

Description

@joannacss

Dear PySVF Development Team,

First of fall, thank you so much for creating Python bindings for the SVF project! That has been super helpful!

I have been trying to perform a points-to analysis using pysvf.AndersenWaveDiff_WPA. I have, however, faced issues with respect to getting the points to sets of a variable. Specifically, the method getPts seems to be missing from pysvf.AndersenWaveDiff_WPA class.
My code is as follows:

bitcode_file = "example.ll"
pysvf.buildSVFModule(bitcode_file)
svfir = pysvf.getPAG()
pta = pysvf.AndersenWaveDiff_WPA(svfir)
pta.analyze()

When I try to later invoke pta.getPts(var_id) I get an error indicating AttributeError: 'pysvf.pysvf.AndersenWaveDiff' object has no attribute 'getPts'. When I look at the available attributes/methods of pta object (dir(pta)), indeed that method is missing and only analyze is available, as shown below:

['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_pybind11_conduit_v1_', 'analyze']

I was expecting this class to have the getPts(...) method in it since it is meant to be a subclass of AndersenBase.
Am I missing something in here or is there another way to obtain the points-to sets for a variable? I've also tried using pysvf.AndersenWaveDiff and it also didn't work for the same reason:

pta = pysvf.AndersenWaveDiff(svf_ir)
pta.analyze()

Thank you!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions