UnitValueBoxPair p = new UnitValueBoxPair(containingStmt, ((AssignStmt) containingStmt).getRightOpBox()); EquivalentValue ev = new EquivalentValue(v); pairsBefore.add(p); UnitValueBoxPair p = new UnitValueBoxPair(containingStmt, ((AssignStmt) containingStmt).getRightOpBox()); EquivalentValue ev = new EquivalentValue(v); pairsAfter.add(p);
public soot.jimple.AssignStmt newAssignStmt(Value variable, Value rvalue, ASTNode location) { soot.jimple.AssignStmt stmt = Jimple.v().newAssignStmt(variable, rvalue); soot.tagkit.Tag left = getTag(variable); if(left != null) stmt.getLeftOpBox().addTag(left); soot.tagkit.Tag right = getTag(rvalue); if(right != null) stmt.getRightOpBox().addTag(right); return stmt; }
UnitValueBoxPair p = new UnitValueBoxPair(containingStmt, ((AssignStmt) containingStmt).getRightOpBox()); pairsBefore.add(p); UnitValueBoxPair p = new UnitValueBoxPair(containingStmt, ((AssignStmt) containingStmt).getRightOpBox()); pairsAfter.add(p);
} else if (s instanceof AssignStmt) { reporter.reportError(new ExceptionCheckerError(b.getMethod(), sc, s, (SourceLnPosTag) ((AssignStmt) s).getRightOpBox().getTag("SourceLnPosTag")));
Util.addLnPosTags(stmt.getRightOpBox(), newArrExpr.position());
private void convertArrayStoreInsn(InsnNode insn) { int op = insn.getOpcode(); boolean dword = op == LASTORE || op == DASTORE; StackFrame frame = getFrame(insn); if (!units.containsKey(insn)) { Operand valu = dword ? popImmediateDual() : popImmediate(); Operand indx = popImmediate(); Operand base = popLocal(); ArrayRef ar = Jimple.v().newArrayRef(base.stackOrValue(), indx.stackOrValue()); indx.addBox(ar.getIndexBox()); base.addBox(ar.getBaseBox()); AssignStmt as = Jimple.v().newAssignStmt(ar, valu.stackOrValue()); valu.addBox(as.getRightOpBox()); frame.in(valu, indx, base); frame.boxes(as.getRightOpBox(), ar.getIndexBox(), ar.getBaseBox()); setUnit(insn, as); } else { frame.mergeIn(dword ? popDual() : pop(), pop(), pop()); } }
Util.addLnPosTags(assign.getRightOpBox(), initExpr.position());
AssignStmt as = Jimple.v().newAssignStmt(stack, newOp.stackOrValue()); src.mergeUnits(newOp.insn, as); newOp.addBox(as.getRightOpBox());
private soot.Value getStrConAssignLocal(polyglot.ast.Assign assign) { soot.jimple.AssignStmt stmt; soot.Value left = base().createLHS(assign.left()); soot.Value right = getStringConcatAssignRightLocal(assign); stmt = soot.jimple.Jimple.v().newAssignStmt(left, right); body.getUnits().add(stmt); Util.addLnPosTags(stmt, assign.position()); Util.addLnPosTags(stmt.getRightOpBox(), assign.right().position()); Util.addLnPosTags(stmt.getLeftOpBox(), assign.left().position()); if (left instanceof soot.Local) { return left; } else { return right; } }
body.getUnits().add(stmt); Util.addLnPosTags(stmt, newExpr.position()); Util.addLnPosTags(stmt.getRightOpBox(), newExpr.position());
private soot.Value getSimpleAssignLocal(polyglot.ast.Assign assign) { soot.jimple.AssignStmt stmt; soot.Value left = base().createLHS(assign.left()); soot.Value right = base().getSimpleAssignRightLocal(assign); stmt = soot.jimple.Jimple.v().newAssignStmt(left, right); body.getUnits().add(stmt); Util.addLnPosTags(stmt, assign.position()); Util.addLnPosTags(stmt.getRightOpBox(), assign.right().position()); Util.addLnPosTags(stmt.getLeftOpBox(), assign.left().position()); if (left instanceof soot.Local) { return left; } else { return right; } }
body.getUnits().add(elemAssign); Util.addLnPosTags(elemAssign, elemExpr.position()); Util.addLnPosTags(elemAssign.getRightOpBox(), elemExpr.position());
Util.addLnPosTags(fieldAssignStmt.getRightOpBox(), field.position()); return baseLocal;
frame.out(opr); AssignStmt as = Jimple.v().newAssignStmt(val, rvalue.stackOrValue()); rvalue.addBox(as.getRightOpBox()); if (!instance) { frame.boxes(as.getRightOpBox()); } else { frame.boxes(as.getRightOpBox(), ((InstanceFieldRef) val).getBaseBox());
/** * InstanceOf Expression Creation */ private soot.Local getInstanceOfLocal(polyglot.ast.Instanceof instExpr) { soot.Type sootType = Util.getSootType(instExpr.compareType().type()); soot.Value local = base().createAggressiveExpr(instExpr.expr(), false, false); soot.jimple.InstanceOfExpr instOfExpr = soot.jimple.Jimple.v().newInstanceOfExpr(local, sootType); soot.Local lhs = lg.generateLocal(soot.BooleanType.v()); soot.jimple.AssignStmt instAssign = soot.jimple.Jimple.v().newAssignStmt(lhs, instOfExpr); body.getUnits().add(instAssign); Util.addLnPosTags(instAssign, instExpr.position()); Util.addLnPosTags(instAssign.getRightOpBox(), instExpr.position()); Util.addLnPosTags(instOfExpr.getOpBox(), instExpr.expr().position()); return lhs; }
body.getUnits().add(conseqAssignStmt); Util.addLnPosTags(conseqAssignStmt, condExpr.position()); Util.addLnPosTags(conseqAssignStmt.getRightOpBox(), consequence.position()); Util.addLnPosTags(altAssignStmt, condExpr.position()); Util.addLnPosTags(altAssignStmt, alternative.position()); Util.addLnPosTags(altAssignStmt.getRightOpBox(), alternative.position());
body.getUnits().add(stmt2); Util.addLnPosTags(stmt2, assign.position()); Util.addLnPosTags(stmt2.getRightOpBox(), assign.right().position()); Util.addLnPosTags(stmt2.getLeftOpBox(), assign.left().position()); body.getUnits().add(stmt3); Util.addLnPosTags(stmt3, assign.position()); Util.addLnPosTags(stmt3.getRightOpBox(), assign.right().position()); Util.addLnPosTags(stmt3.getLeftOpBox(), assign.left().position());
Util.addLnPosTags(stmt.getRightOpBox(), expr.position());
DalvikTyper.v().addConstraint(stmt.getLeftOpBox(), stmt.getRightOpBox()); return; return; DalvikTyper.v().setType(stmt.getRightOpBox(), leftType, true); return;
Util.addLnPosTags(assignStmt.getRightOpBox(), binary.position()); Util.addLnPosTags(assignStmt, binary.position()); return lhs;