public void caseBinopExpr(BinopExpr be) { inBinopExpr(be); caseExprOrRefValueBox(be.getOp1Box()); caseExprOrRefValueBox(be.getOp2Box()); // decideCaseExprOrRef(be.getOp1()); // decideCaseExprOrRef(be.getOp2()); outBinopExpr(be); }
private soot.jimple.BinopExpr updateTags(soot.jimple.BinopExpr binary, ASTNode binaryLocation, soot.Value op1, soot.Value op2) { createTag(binary, binaryLocation); soot.tagkit.Tag op1tag = getTag(op1); if(op1tag != null) binary.getOp1Box().addTag(op1tag); soot.tagkit.Tag op2tag = getTag(op2); if(op2tag != null) binary.getOp2Box().addTag(op2tag); return binary; }
@Override public void caseIfStmt(IfStmt stmt) { // add constraint Value c = stmt.getCondition(); if (c instanceof BinopExpr) { BinopExpr bo = (BinopExpr) c; Value op1 = bo.getOp1(); Value op2 = bo.getOp2(); if (op1 instanceof Local && op2 instanceof Local) { DalvikTyper.v().addConstraint(bo.getOp1Box(), bo.getOp2Box()); } } }
private void javafy_binop_expr(ValueBox vb) { BinopExpr boe = (BinopExpr) vb.getValue(); ValueBox leftOpBox = boe.getOp1Box(), rightOpBox = boe.getOp2Box(); Value leftOp = leftOpBox.getValue(), rightOp = rightOpBox.getValue();
Util.addLnPosTags(((soot.jimple.BinopExpr) rhs).getOp2Box(), binary.right().position());
Util.addLnPosTags(binop.getOp2Box(), assign.right().position());