本文整理了Java中soot.Value.getType()
方法的一些代码示例,展示了Value.getType()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Value.getType()
方法的具体详情如下:
包路径:soot.Value
类名称: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));
}
}
内容来源于网络,如有侵权,请联系作者删除!