[Soot-list] Jimple TypeResolver bug

Patrick Lam plam at sable.mcgill.ca
Fri Jun 3 15:58:39 EDT 2011


On 02/06/11 04:57 AM, Heejong Lee wrote:
> Hi,
>
> I've got a bug of jimple transformation like following:
>
> BufferedReader in = new BufferedReader(new InputStreamReader(new
> FileInputStream(queueFile)));
>>>>>>
>   181         tmp = new java.io.BufferedReader;
>   182         tmp = new java.io.InputStreamReader;
>   183         tmp = new java.io.FileInputStream;
>   184         specialinvoke tmp.<java.io.FileInputStream: void
> <init>(java.io.File)>(queueFile);
>   185         specialinvoke tmp.<java.io.InputStreamReader: void
> <init>(java.io.InputStream)>(tmp);
>   186         specialinvoke tmp.<java.io.BufferedReader: void
> <init>(java.io.Reader)>(tmp);
>
> This IL is obviously incorrect. When I replace
> soot.jimple.toolkits.typing.fast.TypeResolver.split_new()
> with an empty method, the correct output is generated:

Note that, to my knowledge, the subsequent code generation doesn't use 
the Jimple names for anything; it's just wrong to look at, but it's not 
supposed to be wrong in terms of generating code.

Nevertheless, I do think that we can have a counter and use it for the 
variable names.

pat



More information about the Soot-list mailing list