当前位置: 首页>>代码示例>>Java>>正文


Java FloatConstant.v方法代码示例

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


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

示例1: getSimpleDefaultValue

import soot.jimple.FloatConstant; //导入方法依赖的package包/类
protected Value getSimpleDefaultValue(String t) {
	if (t.equals("java.lang.String"))
		return StringConstant.v("");
	if (t.equals("char"))
		return DIntConstant.v(0, CharType.v());
	if (t.equals("byte"))
		return DIntConstant.v(0, ByteType.v());
	if (t.equals("short"))
		return DIntConstant.v(0, ShortType.v());
	if (t.equals("int"))
		return IntConstant.v(0);
	if (t.equals("float"))
		return FloatConstant.v(0);
	if (t.equals("long"))
		return LongConstant.v(0);
	if (t.equals("double"))
		return DoubleConstant.v(0);
	if (t.equals("boolean"))
		return DIntConstant.v(0, BooleanType.v());

	//also for arrays etc.
	return G.v().soot_jimple_NullConstant();
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:24,代码来源:BaseEntryPointCreator.java

示例2: createConstant

import soot.jimple.FloatConstant; //导入方法依赖的package包/类
public static Value createConstant(Object toConvert){
	if(toConvert instanceof Long){
		return LongConstant.v( ((Long)toConvert).longValue() );
	}
	else if(toConvert instanceof Double){
		return DoubleConstant.v( ((Double)toConvert).doubleValue());
	}
	else if(toConvert instanceof Boolean){
		boolean val = ((Boolean)toConvert).booleanValue();
		if(val)
			return DIntConstant.v(1,BooleanType.v());
		else
			return DIntConstant.v(0,BooleanType.v());
	}	
	else if(toConvert instanceof Float){
		return FloatConstant.v( ((Float)toConvert).floatValue());
	}
	else if(toConvert instanceof Integer){
		return IntConstant.v( ((Integer)toConvert).intValue());
	}
	else
		return null;
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:24,代码来源:CPHelper.java

示例3: toSootValue

import soot.jimple.FloatConstant; //导入方法依赖的package包/类
private Value toSootValue(Object val) throws AssertionError {
	Value v;
	if (val instanceof Integer)
		v = IntConstant.v((Integer) val);
	else if (val instanceof Float)
		v = FloatConstant.v((Float) val);
	else if (val instanceof Long)
		v = LongConstant.v((Long) val);
	else if (val instanceof Double)
		v = DoubleConstant.v((Double) val);
	else if (val instanceof String)
		v = StringConstant.v(val.toString());
	else if (val instanceof org.objectweb.asm.Type)
		v = ClassConstant.v(((org.objectweb.asm.Type) val).getInternalName());
	else if (val instanceof Handle)
		v = MethodHandle.v(toSootMethodRef((Handle) val), ((Handle)val).getTag());
	else
		throw new AssertionError("Unknown constant type: " + val.getClass());
	return v;
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:21,代码来源:AsmMethodSource.java

示例4: convertConstInsn

import soot.jimple.FloatConstant; //导入方法依赖的package包/类
private void convertConstInsn(InsnNode insn) {
	int op = insn.getOpcode();
	StackFrame frame = getFrame(insn);
	Operand[] out = frame.out();
	Operand opr;
	if (out == null) {
		Value v;
		if (op == ACONST_NULL)
			v = NullConstant.v();
		else if (op >= ICONST_M1 && op <= ICONST_5)
			v = IntConstant.v(op - ICONST_0);
		else if (op == LCONST_0 || op == LCONST_1)
			v = LongConstant.v(op - LCONST_0);
		else if (op >= FCONST_0 && op <= FCONST_2)
			v = FloatConstant.v(op - FCONST_0);
		else if (op == DCONST_0 || op == DCONST_1)
			v = DoubleConstant.v(op - DCONST_0);
		else
			throw new AssertionError("Unknown constant opcode: " + op);
		opr = new Operand(insn, v);
		frame.out(opr);
	} else {
		opr = out[0];
	}
	if (op == LCONST_0 || op == LCONST_1 ||
			op == DCONST_0 || op == DCONST_1) {
		pushDual(opr);
	} else {
		push(opr);
	}
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:32,代码来源:AsmMethodSource.java

示例5: getPrimValue

import soot.jimple.FloatConstant; //导入方法依赖的package包/类
/**
 * Return a constant value corresponding to the primary type.
 * 
 * @param type
 * @return
 */
public static Value getPrimValue(PrimType type) {
	if (type instanceof IntegerType) {
		return IntConstant.v(1);
	} else if (type instanceof LongType) {
		return LongConstant.v(1);
	} else if (type instanceof FloatType) {
		return FloatConstant.v(1);
	} else {
		return DoubleConstant.v(1);
	}
}
 
开发者ID:karimhamdanali,项目名称:averroes,代码行数:18,代码来源:AverroesJimpleBody.java

示例6: toDefaultSootTypeValue

import soot.jimple.FloatConstant; //导入方法依赖的package包/类
public static Value toDefaultSootTypeValue(Type sootType)
{
	String type = sootType.toString();
	
	if ("boolean".equals(type))
	{
		IntConstant.v(0);
	}
	else if ("byte".equals(type))
	{
		return IntConstant.v(0);
	}
	else if ("char".equals(type))
	{
		return IntConstant.v(0);
	}
	else if ("short".equals(type))
	{
		return IntConstant.v(0);
	}
	else if ("int".equals(type))
	{
		return IntConstant.v(0);
	}
	else if ("long".equals(type))
	{
		return LongConstant.v(0);
	}
	else if ("float".equals(type))
	{
		return FloatConstant.v(0);
	}
	else if ("double".equals(type))
	{
		return DoubleConstant.v(0);
	}

	return NullConstant.v();
}
 
开发者ID:serval-snt-uni-lu,项目名称:DroidRA,代码行数:40,代码来源:InstrumentationUtils.java

示例7: outAFloatConstant

import soot.jimple.FloatConstant; //导入方法依赖的package包/类
public void outAFloatConstant(AFloatConstant node)
   {
String s = (String) mProductions.removeLast();

       boolean isDouble = true;
       float value = 0;
       double dvalue = 0;

       if(s.endsWith("f") || s.endsWith("F")) 
         isDouble = false;
         
       if(s.charAt(0) == '#') {
         if(s.charAt(1) == '-') {
           if(isDouble)
             dvalue = Double.NEGATIVE_INFINITY;
           else
             value = Float.NEGATIVE_INFINITY;
         }
         else if(s.charAt(1) == 'I') {
           if(isDouble)
             dvalue = Double.POSITIVE_INFINITY;
           else
             value = Float.POSITIVE_INFINITY;
         }
         else {
           if(isDouble)
             dvalue = Double.NaN;
           else
             value = Float.NaN;
         }
       }
       else {
         StringBuffer buf = new StringBuffer();          
         if(node.getMinus() != null)
           buf.append('-');
         buf.append(s);
         s = buf.toString();
       
         if(isDouble)
           dvalue = Double.parseDouble(s);
         else
           value =Float.parseFloat(s);        
       }

       Object res;
       if(isDouble)
         res = DoubleConstant.v(dvalue);
       else
         res = FloatConstant.v(value);

mProductions.addLast(res);
   }
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:53,代码来源:Walker.java

示例8: toFloatConstant

import soot.jimple.FloatConstant; //导入方法依赖的package包/类
public FloatConstant toFloatConstant() {
    return  FloatConstant.v(Float.intBitsToFloat((int) value));
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:4,代码来源:UntypedIntOrFloatConstant.java

示例9: createJimpleConstantValue

import soot.jimple.FloatConstant; //导入方法依赖的package包/类
public Value createJimpleConstantValue(cp_info[] constant_pool) {
	return FloatConstant.v(convert());
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:4,代码来源:CONSTANT_Float_info.java

示例10: setUp

import soot.jimple.FloatConstant; //导入方法依赖的package包/类
@Before
public void setUp() {
    unitAnalysis = new UnitThrowAnalysis();
    immaculateAnalysis = new ImmaculateInvokeUnitThrowAnalysis();

    // Ensure the Exception classes we need are represented in Soot:
    utility = new ExceptionTestUtility(System.getProperty("sun.boot.class.path"));

    List voidList = new ArrayList();
    SootClass bogusClass = new SootClass("BogusClass");
    bogusClass.addMethod(new SootMethod("floatFunction",voidList,FloatType.v()));
    bogusClass.addMethod(new SootMethod("floatFunction",Arrays.asList(new Type[] {
        FloatType.v(), FloatType.v(),}),
                FloatType.v(),Modifier.STATIC));
    SootFieldRef nanFieldRef = Scene.v().makeFieldRef(Scene.v().getSootClass("java.lang.Float"),
            "NaN", FloatType.v(),
            true);
    floatStaticFieldRef = Grimp.v().newStaticFieldRef(nanFieldRef);
    floatLocal = Grimp.v().newLocal("local", FloatType.v());
    floatConstant = FloatConstant.v(33.42f);
    floatConstantLocal = Grimp.v().newLocal("local", RefType.v("soot.jimple.FloatConstant"));
    SootFieldRef valueFieldRef 
        = Scene.v().makeFieldRef(bogusClass, "value", FloatType.v(), false);
    floatInstanceFieldRef = Grimp.v().newInstanceFieldRef(floatConstantLocal,
            valueFieldRef);
    floatArrayRef = Grimp.v().newArrayRef(
            Jimple.v().newLocal("local1", FloatType.v()), 
            IntConstant.v(0));
    floatVirtualInvoke = Grimp.v().newVirtualInvokeExpr(
            floatConstantLocal, 
            Scene.v().makeMethodRef(bogusClass, "floatFunction", voidList, 
                FloatType.v(), false), 
            voidList);
    floatStaticInvoke = Grimp.v().newStaticInvokeExpr(
            Scene.v().makeMethodRef(bogusClass, "floatFunction", 
                Arrays.asList(new Type[] {
                    FloatType.v(), FloatType.v(),}),
                FloatType.v(), true),
            Arrays.asList(new Value[] {
                floatStaticFieldRef, floatArrayRef,})
            );
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:43,代码来源:UnitThrowAnalysisTest.java


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