[Soot-list] Why JSubExpr if Jimple does not have subexpression?

Z zell08v at orange.fr
Fri Jul 6 10:59:28 EDT 2012


Thank you Eric.

In the following, let us call the generated Jimple with temporary variables
Jimple-w. The Jimple without temporary variables will be called Jimple-wo.

First, the documented Jimple is clearly Jimple-w. The Jimple-wo is not
documented anywhere.  This should be fine if the two Jimple are transparent
to program analyzers.

However, I think that the two Jimple does not necessarily behave equally
for program analyzers.  Consider the uniqueness analysis of Fink et al´ss
"typestate verification."  (ISSTA'06).  An abstract object is " unique" if
it is pointed to by a single live pointer. Imagine an analysis that only
traces abstract objects  pointed to by single pointer, live or not, then
different results will be given from the 2 different Jimple. What do you
think?

Zell.

On Fri, Jul 6, 2012 at 4:15 PM, Eric Bodden <eric.bodden at ec-spride.de>wrote:

> Hi Zell.
>
> > the 2nd generated jimple  does not even introduce temporary variables,
> while
> > the first one does it !
> > It seems to me that the 2nd one is not a real jimple.
>
> They are both valid jimple because they are both in a simplified
> three-address form. The only difference is that the second code is
> more verbose than the first - other than that they are equivalent. If
> you program your analysis correctly, it should give you the same
> results for both programs.
>
> Eric
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20120706/c664137f/attachment.html 


More information about the Soot-list mailing list