Skip to content

Commit cc2d662

Browse files
committed
Soot used to create an exception edge from the start of a trap to the handler, regardless of whether the start unit could throw any exception that was caught by that handler. I removed this special handling, because it leads to false positives in our client analysis and I don't see any reason for having it altogether. The FlowDroid test cases (more than 520) still work, so I'm quite confident that I didn't break too much.
1 parent c4dd94f commit cc2d662

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/main/java/soot/toolkits/graph/ExceptionalUnitGraph.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ protected Map<Unit, Collection<ExceptionDest>> buildExceptionDests(ThrowAnalysis
288288
}
289289

290290
ThrowableSet.Pair catchableAs = thrownSet.whichCatchableAs(catcher);
291-
if (unit.equals(trap.getBeginUnit()) || !catchableAs.getCaught().equals(ThrowableSet.Manager.v().EMPTY)) {
291+
if (!catchableAs.getCaught().equals(ThrowableSet.Manager.v().EMPTY)) {
292292
result = addDestToMap(result, unit, trap, catchableAs.getCaught());
293293
unitToUncaughtThrowables.put(unit, catchableAs.getUncaught());
294294
} else {

0 commit comments

Comments
 (0)