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; }
DalvikTyper.v().setType(ass2.getLeftOpBox(), newType, true); continue; } else { DalvikTyper.v().setType(ar == l ? ass.getRightOpBox() : ass.getLeftOpBox(), t, true); todoUnits.remove(u);
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; } }
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; } }
DalvikTyper.v().addConstraint(stmt.getLeftOpBox(), stmt.getRightOpBox()); return; DalvikTyper.v().setType(stmt.getLeftOpBox(), IntType.v(), false); return; } else if (t instanceof FloatOpTag) { checkExpr(r, FloatType.v()); DalvikTyper.v().setType(stmt.getLeftOpBox(), FloatType.v(), false); return; } else if (t instanceof DoubleOpTag) { checkExpr(r, DoubleType.v()); DalvikTyper.v().setType(stmt.getLeftOpBox(), DoubleType.v(), false); return; } else if (t instanceof LongOpTag) { checkExpr(r, LongType.v()); DalvikTyper.v().setType(stmt.getLeftOpBox(), LongType.v(), false); return; DalvikTyper.v().setType(stmt.getLeftOpBox(), rightType, false); return;
Util.addLnPosTags(stmt2, assign.position()); Util.addLnPosTags(stmt2.getRightOpBox(), assign.right().position()); Util.addLnPosTags(stmt2.getLeftOpBox(), assign.left().position()); Util.addLnPosTags(stmt3, assign.position()); Util.addLnPosTags(stmt3.getRightOpBox(), assign.right().position()); Util.addLnPosTags(stmt3.getLeftOpBox(), assign.left().position());
Util.addLnPosTags(stmt.getLeftOpBox(), localDecl.position().line(), localDecl.position().endLine(), localDecl.position().endColumn() - name.length(), localDecl.position().endColumn()); if (expr != null) {
if (unit instanceof AssignStmt) { final String rightBox = ((AssignStmt) unit).getRightOpBox().getValue().toString(); final String leftBox = ((AssignStmt) unit).getLeftOpBox().getValue().toString();