[Soot-list] Condition Statement in JimpleBody

Quentin Sabah quentin.sabah at inria.fr
Wed May 15 04:29:23 EDT 2013


Hi Zhiyuan,

The tuple at lines 1 and 2 is definitely different
from (doesn't alias) the tuple at lines 5 and 6. Because you re-used the
same variable doesn't mean both references defined at
line 1 and 5 will be passed as argument in line 6.

To convince you, simply rewrite your program with different
Tuple variables:

1 Tuple tuple = (Tuple) tuples.get(node);
2 if (tuple == null) {
3 // Make a new Tuple for the node being processed
4 final Node s = simplify(node);
5 Tuple tuple2 = new Tuple(s);
6 tuples.put(node, tuple2);
...
   // and maybe later
   tuple = tuple2
}

> For I intend to analyze all the auguments passing to method call, the
> issue above will cause unsoundness.
Can you describe what is an "augments" ?


-- 
Quentin Sabah, CIFRE Ph.D. student
Grenoble University
INRIA-SPADES                   | STMicroelectronics/AST
Montbonnot, France             | Grenoble, France
mailto:quentin.sabah at inria.fr  | mailto:quentin.sabah at st.com
phone: +33 476 61 54 57        | phone: +33 476 58 44 14


More information about the Soot-list mailing list