diff --git a/src/main/java/vasco/ForwardInterProceduralAnalysis.java b/src/main/java/vasco/ForwardInterProceduralAnalysis.java index 9a0406e50..21b57da28 100644 --- a/src/main/java/vasco/ForwardInterProceduralAnalysis.java +++ b/src/main/java/vasco/ForwardInterProceduralAnalysis.java @@ -59,7 +59,11 @@ public void doAnalysis() { // Initial contexts for (M method : programRepresentation().getEntryPoints()) { - initContext(method, boundaryValue(method)); + if (programRepresentation().isPhantomMethod(method)) { + initContextForPhantomMethod(method, boundaryValue(method)); + } else { + initContext(method, boundaryValue(method)); + } } // Perform work-list based analysis diff --git a/src/main/java/vasco/soot/DefaultJimpleRepresentation.java b/src/main/java/vasco/soot/DefaultJimpleRepresentation.java index 25943e0e3..3c5295814 100644 --- a/src/main/java/vasco/soot/DefaultJimpleRepresentation.java +++ b/src/main/java/vasco/soot/DefaultJimpleRepresentation.java @@ -111,8 +111,7 @@ public List resolveTargets(SootMethod method, Unit node) { @Override public boolean isPhantomMethod(SootMethod method) { - // TODO Auto-generated method stub - return false; + return method.isPhantom() || !method.hasActiveBody(); } }