soot.Value.getType()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(5.0k)|赞(0)|评价(0)|浏览(62)

本文整理了Java中soot.Value.getType()方法的一些代码示例,展示了Value.getType()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Value.getType()方法的具体详情如下:
包路径:soot.Value
类名称:Value
方法名:getType

Value.getType介绍

[英]Returns the Soot type of this Value.
[中]返回此值的烟灰类型。

代码示例

代码示例来源:origin: Sable/soot

private boolean isFloat(soot.Value val) {
 if (val.getType() instanceof soot.FloatType) {
  return true;
 }
 return false;
}

代码示例来源:origin: Sable/soot

public boolean isAllShared(boolean refsOnly) {
 for (int i = 0; i < nodes.size(); i++) {
  if ((!refsOnly) && isNodeLocal.get(i).booleanValue()) {
   return false;
  } else if (((EquivalentValue) nodes.get(i)).getValue().getType() instanceof RefLikeType
    && isNodeLocal.get(i).booleanValue()) {
   return false;
  }
 }
 return true;
}

代码示例来源:origin: Sable/soot

public Type getType() {
  if (getOp1().getType().equals(getOp2().getType())) {
   return getOp1().getType();
  }

  return IntType.v();
 }
}

代码示例来源:origin: Sable/soot

public Type getType() {
  if (getOp1().getType().equals(getOp2().getType())) {
   return getOp1().getType();
  }

  return IntType.v();
 }
}

代码示例来源:origin: Sable/soot

public Type getType() {
  if (getOp1().getType().equals(getOp2().getType())) {
   return getOp1().getType();
  }

  return IntType.v();
 }
}

代码示例来源:origin: Sable/soot

public Type getType() {
  Value op1 = op1Box.getValue();
  Value op2 = op2Box.getValue();

  if (isIntLikeType(op1.getType()) && isIntLikeType(op2.getType())) {
   return IntType.v();
  } else if (op1.getType().equals(LongType.v()) && op2.getType().equals(LongType.v())) {
   return LongType.v();
  } else {
   return UnknownType.v();
  }
 }
}

代码示例来源:origin: Sable/soot

@Override
 public void caseIdentityStmt(IdentityStmt stmt) {
  if (stmt.getLeftOp() == l) {
   usedAsObject = isObject(stmt.getRightOp().getType());
   doBreak = true;
   return;
  }
 }
};

代码示例来源:origin: Sable/soot

@Override
 public void caseIdentityStmt(IdentityStmt stmt) {
  if (stmt.getLeftOp() == l) {
   usedAsObject = isObject(stmt.getRightOp().getType());
   if (usedAsObject) {
    doBreak = true;
   }
   return;
  }
 }
});

代码示例来源:origin: Sable/soot

@Override
public void caseAssignStmt(AssignStmt s) {
 Value lhs = s.getLeftOp();
 if (lhs instanceof ArrayRef && (lhs.getType() instanceof UnknownType || lhs.getType() instanceof RefType)) {
  // This corresponds to an aastore byte code.
  result = result.add(mgr.ARRAY_STORE_EXCEPTION);
 }
 result = result.add(mightThrow(s.getLeftOp()));
 result = result.add(mightThrow(s.getRightOp()));
}

代码示例来源:origin: Sable/soot

protected void checkThrow(Body b, ThrowStmt ts) {
 if (isThrowDeclared(b, ((RefType) ts.getOp().getType()).getSootClass()) || isThrowFromCompiler(ts)
   || isExceptionCaught(b, ts, (RefType) ts.getOp().getType())) {
  return;
 }
 if (reporter != null) {
  reporter.reportError(new ExceptionCheckerError(b.getMethod(), ((RefType) ts.getOp().getType()).getSootClass(), ts,
    (SourceLnPosTag) ts.getOpBox().getTag("SourceLnPosTag")));
 }
}

代码示例来源:origin: Sable/soot

public void caseCmpgExpr(CmpgExpr v) {
 emitValue(v.getOp1());
 emitValue(v.getOp2());
 if (v.getOp1().getType().equals(FloatType.v())) {
  emit("fcmpg", -1);
 } else {
  emit("dcmpg", -3);
 }
}

代码示例来源:origin: Sable/soot

public void convertToBaf(JimpleToBafContext context, List<Unit> out) {
 ((ConvertToBaf) this.getOp1()).convertToBaf(context, out);
 ((ConvertToBaf) this.getOp2()).convertToBaf(context, out);
 Unit u = (Unit) makeBafInst(this.getOp1().getType());
 out.add(u);
 u.addAllTagsOf(context.getCurrentUnit());
}

代码示例来源:origin: Sable/soot

public void convertToBaf(JimpleToBafContext context, List<Unit> out) {
 ((ConvertToBaf) this.getOp1()).convertToBaf(context, out);
 ((ConvertToBaf) this.getOp2()).convertToBaf(context, out);
 Unit u = (Unit) makeBafInst(this.getOp1().getType());
 out.add(u);
 u.addAllTagsOf(context.getCurrentUnit());
}

代码示例来源:origin: Sable/soot

public void caseCmplExpr(CmplExpr v) {
 emitValue(v.getOp1());
 emitValue(v.getOp2());
 if (v.getOp1().getType().equals(FloatType.v())) {
  emit("fcmpl", -1);
 } else {
  emit("dcmpl", -3);
 }
}

代码示例来源:origin: Sable/soot

@Override
final public void caseReturnStmt(ReturnStmt rs) {
 if (!(rs.getOp().getType() instanceof RefLikeType)) {
  return;
 }
 rs.getOp().apply(MethodNodeFactory.this);
 Node retNode = getNode();
 mpag.addInternalEdge(retNode, caseRet());
}

代码示例来源:origin: Sable/soot

@Override
 public void caseGeExpr(GeExpr expr) {
  add(Baf.v().newIfCmpGeInst(op1.getType(), Baf.v().newPlaceholderInst(getTarget())));
 }
});

代码示例来源:origin: Sable/soot

public void caseIdentityStmt(IdentityStmt stmt) {
 Value l = stmt.getLeftOp();
 Value r = stmt.getRightOp();
 if (l instanceof Local) {
  if (((Local) l).getType() instanceof IntegerType) {
   TypeVariable left = resolver.typeVariable((Local) l);
   TypeVariable right = resolver.typeVariable(r.getType());
   right.addParent(left);
  }
 }
}

代码示例来源:origin: Sable/soot

@Override
public void caseLtExpr(LtExpr expr) {
 add(Baf.v().newIfCmpLtInst(op1.getType(), Baf.v().newPlaceholderInst(getTarget())));
}

代码示例来源:origin: Sable/soot

@Override
public void caseGtExpr(GtExpr expr) {
 add(Baf.v().newIfCmpGtInst(op1.getType(), Baf.v().newPlaceholderInst(getTarget())));
}

代码示例来源:origin: Sable/soot

@Override
final public void caseInstanceFieldRef(InstanceFieldRef ifr) {
 if (pag.getOpts().field_based() || pag.getOpts().vta()) {
  setResult(pag.makeGlobalVarNode(ifr.getField(), ifr.getField().getType()));
 } else {
  setResult(pag.makeLocalFieldRefNode(ifr.getBase(), ifr.getBase().getType(), ifr.getField(), method));
 }
}

相关文章