From b9424fbb280bbf4e17e4897fe83beaeec94865e6 Mon Sep 17 00:00:00 2001 From: Rohan Padhye Date: Mon, 18 Nov 2019 10:30:45 -0800 Subject: [PATCH] Jump over calls to phantom methods or methods without body Addresses #14 --- src/main/java/vasco/ForwardInterProceduralAnalysis.java | 6 +++++- src/main/java/vasco/soot/DefaultJimpleRepresentation.java | 3 +-- 2 files changed, 6 insertions(+), 3 deletions(-) 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(); } }