[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CFG: RuntimeException: Attempting to push a non-constant cp entry



Hi,

I have a problem: when I try to use the -w (or -W for that matter) flag with a very small class like:

public class Test {
        public static double compute (double x){

	        double z = 0;
        	z = x;
	        return z;
        }

}

with the following command line:

java soot.Main -w -f jimple --soot-classpath .:/home/af016es/work/java/j2sdk1.5.0/jre/lib/rt.jar
:gnu-crypto-2.0.1-bin/lib/javax-crypto.jar Test


I get the following Runtime Exception:

Applying phase jb.uce to <java.lang.System: void <clinit>()>.
[<clinit>] Eliminating unreachable code...
[<clinit>] Constructing UnitGraph...
[<clinit>] Removed 0 statements...
[<clinit>] Constructing JimpleBody from coffi...
[<clinit>] Parsing Coffi instructions...
[<clinit>] Building Coffi CFG...
[<clinit>] Producing naive Jimple...
Exception in thread "main" java.lang.RuntimeException: Attempting to push a non-constant cp entry
at soot.coffi.CFG.processCPEntry(CFG.java:2695)
at soot.coffi.CFG.processFlow(CFG.java:1709)
at soot.coffi.CFG.jimplify(CFG.java:1342)
at soot.coffi.CFG.jimplify(CFG.java:1126)
at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:98)
at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:79)
at soot.SootMethod.retrieveActiveBody(SootMethod.java:274)
at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:191)
at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:82)
at soot.jimple.toolkits.callgraph.CallGraphBuilder.build(CallGraphBuilder.java:94)
at soot.jimple.toolkits.callgraph.CHATransformer.internalTransform(CHATransformer.java:43)
at soot.SceneTransformer.transform(SceneTransformer.java:39)
at soot.Transform.apply(Transform.java:79)
at soot.RadioScenePack.internalApply(RadioScenePack.java:60)
at soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:36)
at soot.Pack.apply(Pack.java:107)
at soot.PackManager.runWholeProgramPacks(PackManager.java:292)
at soot.PackManager.runPacks(PackManager.java:275)
at soot.Main.run(Main.java:180)
at soot.Main.main(Main.java:154)


and I don't know why. Am I doing something wrong, or is this a bug in CFG.java in the coffi implementation?

I also don't understand exactly why is it the gnu-crypto-2.0.1-bin/lib/javax-crypto.jar needed. Is there a reason for this? Other than "it's a dependency that needs to be satisfied"?

Cheers,

Emil