[Soot-list] Jimple.TableSwitchStmt

Martin Schäf martinschaef at googlemail.com
Tue Nov 15 06:02:16 EST 2011


Hi,

I'm trying to build a source-to-source transformer based on jimple.

I'm stuck with
jimple.TableSwitchStmt

I have no idea, where I can find the information about the expressions
in the switch cases when visiting the statement with the
jimple.StmtSwitch.

The TableSwitchStmt provides me with a list of "targets", however,
those seem to be only the statements after the "case" statements.
E.g., in the example below, I only find things like "i1 = i1 + 1;" but
I have no idea how to get the "i0==1" from the TableSwitchStmt class.

Anybody know the solution?
Thanks,
M

The jimple ouput looks as follows:
        tableswitch(i0)
        {
            case 1: goto label0;
            case 2: goto label1;
            case 3: goto label2;
            default: goto label3;
        };

     label0:
        i1 = i1 + 1;

     label1:
        i1 = i1 + -1;
        goto label3;

     label2:
        i1 = 9;

     label3:
        return i1;
    }


More information about the Soot-list mailing list