[Soot-list] my StrongLocalMustAliasAnalysis gives unexpected results

Zhoulai zell08v at orange.fr
Sat Oct 27 04:17:15 EDT 2012


Hi,

At the same time, I solved some imprecision caused by cases such as
> the following:
>
> A b = new A(), c;
> while (i>0){
>   A a = new A();
>   A x = a;
>   c = b;
> }
>
> In this case, the key for a,x should be invalidated, but not the key
> for b,c. The refined implementation gives you this semantics. Zell can
> you please double-check that it's doing the right thing?
>
> Eric
>

Eric, I am not quite sure the new fixed StrongLocalMustAliasAnalysis is
already sound.

Let us slightly modify your test case above. Here it is the test-case I am
using:

    void test(int i, A c){
        A b= new A();
        while (i>0){
            A a = new A();
            A x = a;
            c = b;
            String tag="TAG";
        }
    }

Your  StrongLocalMustAliasAnalysis associates 'c' with UNKNOWN  *for all
the control points inside the loop.

*However, for the first three lines of the loop, I think 'c' has
potentially more than one value, the one  the function parameter,  and the
one from 'b'.   So, 'c' should be bound to UNKNOWN only for the last two
lines.  Did I misunderstand something? If not, I may have some suggestions
on how to avoid this problem .

*Zell*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20121027/2126f372/attachment.html 


More information about the Soot-list mailing list