[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