[Soot-list] Control-Flow with regards to a Heros analysis

Eric Bodden eric.bodden at uni-paderborn.de
Mon Aug 12 04:26:29 EDT 2019


Hi Kyle.

Sorry about the late response, I was on vacation.

> If I perform an inter-procedural analysis using Heros, will it be path sensitive with regards to different control-flows?

No it will not. Heros implements IFDS/IDE, which is not path sensitive.

> In other words, if there is a branching statement in the program being analysed would it be able to analyse the program down each of the branched paths (as well as the rest of the program)? 
> 
> e.g. 
> int x = 2;
> if (x > 1) {
>     x = 5;
> }
> System.out.println(x);
> 
> Assuming no optimisations are made in the above example, would Heros reach the println statement twice depending on the path taken?

Yes it would reach it twice but that has nothing to do with path-sensitivity. It seems that you maybe misunderstand the notion of "path-sensitivity”. An analysis is path-sensitive if it can correlate different branch conditions to exclude paths that cannot be taken at runtime. This is irrelevant in your example here.

Heros will analyze the entire program, including all branches. In your example, it will analyze the println-statement a second time if and only if (!) the information computed in the branch differs from the information computed when bypassing the branch.

Best wishes
Eric


More information about the Soot-list mailing list