You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Made VersionedFlowSensitive read-only functions & checks public (consistent with other WPA implementations)
Currently, most WPA implementations (e.g., `AndersenWaveDiff`) expose read-only functions (e.g., `printStat()`, `dumpTopLevelPtsTo()`, etc.) publically, as well as "constructors" like `solveAndWritePtsToFile()`, `readPtsFromFile()`, etc. However, `VersionedFlowSensitive` is the only one to mark these functions as `private`/`protected`. This makes it annoying to use polymorphism over the underlying PTA base class (i.e., `BVDataPTAImpl`) and the overridden virtual functions. This commit fixes that by marking these functions as public in the `VersionedFlowSensitive` WPA class.
This change allows me to use polymorphism to conveniently try different WPA backends like this:
```
SVF::BVDataPTAImpl *pta = nullptr;
switch(getChosenBackend()) {
case Andersen_BASE:
pta = new Andersen(...);
break;
case VFS_WPA:
pta = new VersionedFlowSensitive(...);
break;
default:
break;
}
```
0 commit comments