• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java MulExpr类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中soot.jimple.MulExpr的典型用法代码示例。如果您正苦于以下问题:Java MulExpr类的具体用法?Java MulExpr怎么用?Java MulExpr使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



MulExpr类属于soot.jimple包,在下文中一共展示了MulExpr类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: visit

import soot.jimple.MulExpr; //导入依赖的package包/类
@Override
public void visit(Value e) {
	if (e instanceof MulExpr) {
		MulExpr me = (MulExpr) e;
		add(e, me.getOp1(), me.getOp2());
	}
}
 
开发者ID:petablox-project,项目名称:petablox,代码行数:8,代码来源:RelMulExpr.java


示例2: caseMulExpr

import soot.jimple.MulExpr; //导入依赖的package包/类
/**
 * It is not neccessary to treat arithmetic expressions. The SecurityLevels
 * of this expressions are treated at an other place.
 * @param v an arithmetic expression
 */
@Override
public void caseMulExpr(MulExpr v) {
	logger.finest("Mul Expr identified " + callingStmt.toString());
	rightElement = RightElement.NOT;

}
 
开发者ID:proglang,项目名称:jgs,代码行数:12,代码来源:AnnotationValueSwitch.java


示例3: caseMulExpr

import soot.jimple.MulExpr; //导入依赖的package包/类
@Override
public void caseMulExpr(MulExpr v) {
	throw new RuntimeException("todo");
	
}
 
开发者ID:srasthofer,项目名称:FuzzDroid,代码行数:6,代码来源:JimpleExprVisitorImpl.java


示例4: caseMulExpr

import soot.jimple.MulExpr; //导入依赖的package包/类
public void caseMulExpr(MulExpr v) {
	printBinaryExpr(v);
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:4,代码来源:ValueTemplatePrinter.java


示例5: handleBinopExpr

import soot.jimple.MulExpr; //导入依赖的package包/类
private void handleBinopExpr(BinopExpr be, Stmt stmt, Type tlhs)
{
	Value opl = be.getOp1(), opr = be.getOp2();
	Type tl = AugEvalFunction.eval_(this.tg, opl, stmt, this.jb),
		tr = AugEvalFunction.eval_(this.tg, opr, stmt, this.jb);

	if ( be instanceof AddExpr
		|| be instanceof SubExpr
		|| be instanceof MulExpr
		|| be instanceof DivExpr
		|| be instanceof RemExpr
		|| be instanceof GeExpr
		|| be instanceof GtExpr
		|| be instanceof LeExpr
		|| be instanceof LtExpr
		|| be instanceof ShlExpr
		|| be instanceof ShrExpr
		|| be instanceof UshrExpr )
	{
		if ( tlhs instanceof IntegerType )
		{
			be.setOp1(this.uv.visit(opl, IntType.v(), stmt));
			be.setOp2(this.uv.visit(opr, IntType.v(), stmt));
		}
	}
	else if ( be instanceof CmpExpr
		|| be instanceof CmpgExpr
		|| be instanceof CmplExpr )
	{
		// No checks in the original assigner
	}
	else if ( be instanceof AndExpr
		|| be instanceof OrExpr
		|| be instanceof XorExpr )
	{
		be.setOp1(this.uv.visit(opl, tlhs, stmt));
		be.setOp2(this.uv.visit(opr, tlhs, stmt));
	}
	else if ( be instanceof EqExpr
		|| be instanceof NeExpr )
	{
		if ( tl instanceof BooleanType && tr instanceof BooleanType )
		{ }
		else if ( tl instanceof Integer1Type || tr instanceof Integer1Type )
		{ }
		else if ( tl instanceof IntegerType )
		{
			be.setOp1(this.uv.visit(opl, IntType.v(), stmt));
			be.setOp2(this.uv.visit(opr, IntType.v(), stmt));
		}
	}
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:53,代码来源:UseChecker.java


示例6: caseMulExpr

import soot.jimple.MulExpr; //导入依赖的package包/类
@Override
public void caseMulExpr(MulExpr me) {
       stmtV.addInsn(buildCalculatingBinaryInsn("MUL", me.getOp1(), me.getOp2()), origStmt);
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:5,代码来源:ExprVisitor.java


示例7: getResult

import soot.jimple.MulExpr; //导入依赖的package包/类
public NumericConstant getResult(BinopExpr binop){
	if(DEBUG)
		System.out.println("Binop expr"+binop);
	Value leftOp = binop.getOp1();
	Value rightOp = binop.getOp2();
	
	int op = 0;
	if(binop instanceof AddExpr){
		op=1;
	}
	else if(binop instanceof SubExpr || 
			binop instanceof DCmpExpr || binop instanceof DCmpgExpr
			|| binop instanceof DCmplExpr){
		op=2;
	}
	else if(binop instanceof MulExpr){
		op=3;
	}

	if(op == 0){
		if(DEBUG){
			System.out.println("not add sub or mult");
			System.out.println(binop.getClass().getName());
		}			
		return null;
	}
	NumericConstant constant = null;
	if(leftOp instanceof LongConstant  && rightOp instanceof LongConstant){
		if(DEBUG)
			System.out.println("long constants!!");
		if(op ==1)
			constant = ((LongConstant)leftOp).add((LongConstant)rightOp);
		else if(op ==2)
			constant = ((LongConstant)leftOp).subtract((LongConstant)rightOp);
		else if (op ==3)
			constant = ((LongConstant)leftOp).multiply((LongConstant)rightOp);
	}
	else if(leftOp instanceof DoubleConstant  && rightOp instanceof DoubleConstant){
		if(DEBUG)
			System.out.println("double constants!!");
		if(op ==1)
			constant = ((DoubleConstant)leftOp).add((DoubleConstant)rightOp);
		else if(op ==2)
			constant = ((DoubleConstant)leftOp).subtract((DoubleConstant)rightOp);
		else if (op ==3)
			constant = ((DoubleConstant)leftOp).multiply((DoubleConstant)rightOp);

	}
	else if(leftOp instanceof FloatConstant  && rightOp instanceof FloatConstant){
		if(DEBUG)
			System.out.println("Float constants!!");
		if(op ==1)
			constant = ((FloatConstant)leftOp).add((FloatConstant)rightOp);
		else if(op ==2)
			constant = ((FloatConstant)leftOp).subtract((FloatConstant)rightOp);
		else if (op ==3)
			constant = ((FloatConstant)leftOp).multiply((FloatConstant)rightOp);
	}
	else if(leftOp instanceof IntConstant  && rightOp instanceof IntConstant){
		if(DEBUG)
			System.out.println("Integer constants!!");
		if(op ==1)
			constant = ((IntConstant)leftOp).add((IntConstant)rightOp);
		else if(op ==2)
			constant = ((IntConstant)leftOp).subtract((IntConstant)rightOp);
		else if (op ==3)
			constant = ((IntConstant)leftOp).multiply((IntConstant)rightOp);
	}
	
	return constant;
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:72,代码来源:SimplifyExpressions.java


示例8: caseMulExpr

import soot.jimple.MulExpr; //导入依赖的package包/类
public void caseMulExpr(MulExpr expr) {
    caseBinopExpr(expr);
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:4,代码来源:UnitThrowAnalysis.java


示例9: caseMulExpr

import soot.jimple.MulExpr; //导入依赖的package包/类
@Override
public void caseMulExpr(MulExpr arg0) {
	translateBinOp(arg0);
}
 
开发者ID:SRI-CSL,项目名称:bixie,代码行数:5,代码来源:SootValueSwitch.java


示例10: caseMulExpr

import soot.jimple.MulExpr; //导入依赖的package包/类
/**
 * DOC
 * 
 * @see soot.jimple.ExprSwitch#caseMulExpr(soot.jimple.MulExpr)
 */
@Override
public void caseMulExpr(MulExpr v) {
    v.getOp1().apply(this);
    v.getOp2().apply(this);
}
 
开发者ID:proglang,项目名称:jgs,代码行数:11,代码来源:AnnotationValueSwitch.java


示例11: caseMulExpr

import soot.jimple.MulExpr; //导入依赖的package包/类
@Override
public void caseMulExpr(MulExpr v) {
    throwInvalidWriteException(v);
}
 
开发者ID:proglang,项目名称:jgs,代码行数:5,代码来源:SecurityConstraintValueWriteSwitch.java


示例12: caseMulExpr

import soot.jimple.MulExpr; //导入依赖的package包/类
@Override
public void caseMulExpr(MulExpr v) {
    handleBinaryExpr(v.getOp1(), v.getOp2());
}
 
开发者ID:proglang,项目名称:jgs,代码行数:5,代码来源:SecurityConstraintValueReadSwitch.java


示例13: signOf

import soot.jimple.MulExpr; //导入依赖的package包/类
private Sign signOf(Value value, Map<Local, Sign> dfv) {
	if (value instanceof Local) {
		// if the value is a local variable, then look-up the data-flow map
		Local local = (Local) value;
		if (dfv.containsKey(local)) {
			return dfv.get(local);
		} else {
			return Sign.TOP;
		}
	} else if (value instanceof NumericConstant) {
		// If the value is a constant, we can get a definite sign
		NumericConstant num = (NumericConstant) value;
		NumericConstant zero = IntConstant.v(0);
		NumericConstant one = IntConstant.v(1);
		if (num.lessThan(zero).equals(one)) {
			return NEGATIVE;
		} else if (num.greaterThan(zero).equals(one)) {
			return POSITIVE;
		} else {
			return ZERO;
		}
	} else if (value instanceof BinopExpr) {
		BinopExpr expr = (BinopExpr) value;
		Value op1 = expr.getOp1();
		Value op2 = expr.getOp2();
		Sign sign1 = signOf(op1, dfv);
		Sign sign2 = signOf(op2, dfv);
		if (value instanceof AddExpr) {
			// Handle arithmetic plus
			return sign1.plus(sign2);
		} else if (value instanceof MulExpr) {
			// Handle arithmetic multiplication
			return sign1.mult(sign2);
		} else {
			// We do not handle other types of binary expressions
			return BOTTOM;
		}
	} else if (value instanceof UnopExpr) { 
		if (value instanceof AbstractNegExpr) {
			// Handle unary minus
			Value op = ((AbstractNegExpr) value).getOp();
			Sign sign = signOf(op, dfv);
			return sign.negate();
		} else {
			// We do not handle other types of binary expressions
			return BOTTOM;
		}
	} else {
		// We do not handle other types of compound expressions
		return BOTTOM;
	}
}
 
开发者ID:rohanpadhye,项目名称:vasco,代码行数:53,代码来源:SignAnalysis.java


示例14: caseMulExpr

import soot.jimple.MulExpr; //导入依赖的package包/类
/**
 * The method should update the <em>security level</em> of a {@link MulExpr}
 * , but it is not possible to update the level of an expression.
 * 
 * @param v
 *            The expression for which the <em>security level</em> should be
 *            updated.
 * @see soot.jimple.ExprSwitch#caseMulExpr(soot.jimple.MulExpr)
 * @throws InvalidSwitchException
 *             Always, because the update is not possible.
 */
@Override
public void caseMulExpr(MulExpr v) {
    throw new SwitchException(getMsg("exception.analysis.switch.update_error",
                                     this.getClass().getSimpleName(),
                                     v.getClass().getSimpleName(),
                                     v.toString(),
                                     getSourceLine()));
}
 
开发者ID:proglang,项目名称:jgs,代码行数:20,代码来源:SecurityLevelValueWriteSwitch.java


示例15: caseMulExpr

import soot.jimple.MulExpr; //导入依赖的package包/类
/**
 * Looks up the <em>security level</em> for the given binary expression and
 * stores the level in {@link SecurityLevelValueReadSwitch#level}. For a
 * {@link MulExpr} this is the strongest operand <em>security level</em> of
 * the given binary expression.
 * 
 * @param v
 *            The expression for which the <em>security level</em> should be
 *            looked up.
 * @see soot.jimple.ExprSwitch#caseMulExpr(soot.jimple.MulExpr)
 * @see SecurityLevelValueReadSwitch#handleBinaryOperation(BinopExpr)
 */
@Override
public void caseMulExpr(MulExpr v) {
    handleBinaryOperation(v);
}
 
开发者ID:proglang,项目名称:jgs,代码行数:17,代码来源:SecurityLevelValueReadSwitch.java



注:本文中的soot.jimple.MulExpr类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java SharedTorrent类代码示例发布时间:2022-05-23
下一篇:
Java DatagramChannel类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap