[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Inference of static types



"Lipsky, Nikita" wrote:
> Here the sample:
> 
>  <<test2.class>>

Hi Nikita,

I ran your test through Soot 1.2.2, and got the result attached to this
message.

Everything seems fine.  Read my next message for explanation.

Etienne
-- 
----------------------------------------------------------------------
Etienne M. Gagnon, M.Sc.                     e-mail: egagnon@j-meg.com
Author of SableCC:                             http://www.sablecc.org/
and SableVM:                                   http://www.sablevm.org/
public class test2 extends java.lang.Object
{
    static boolean flag;

    public void <init>()
    {
        test2 r0;

        r0 := @this: test2;
        specialinvoke r0.<java.lang.Object: void <init>()>();
        return;
    }

    public static void use(java.lang.Integer)
    {
        java.lang.Integer r0;

        r0 := @parameter0: java.lang.Integer;
        return;
    }

    public static void main(java.lang.String[])
    {
        java.lang.String[] r0;
        boolean $z0;
        java.lang.Boolean r1, r3;
        java.io.PrintStream $r2;
        java.lang.Integer r4;

        r0 := @parameter0: java.lang.String[];
        $z0 = <test2: boolean flag>;
        if $z0 == 0 goto label0;

        r1 = null;
        r4 = (java.lang.Integer) r1;
        staticinvoke <test2: void use(java.lang.Integer)>(r4);
        goto label1;

     label0:
        r3 = new java.lang.Boolean;
        specialinvoke r3.<java.lang.Boolean: void <init>(boolean)>(1);
        r1 = r3;

     label1:
        $r2 = <java.lang.System: java.io.PrintStream out>;
        virtualinvoke $r2.<java.io.PrintStream: void println(java.lang.Object)>(r1);
        return;
    }

    static void <clinit>()
    {
        <test2: boolean flag> = 1;
        return;
    }
}