The attached code causes an exception in soot. Also attached is the
stack trace at the exception. I can code around this for now, I'm
emailing it just so we don't forget.
class Main {
void f(boolean b) {
l1:
for (;;) {
if (b) {
continue l1;
}
l2:
for (;;) {
continue l2;
}
}
}
//This code also causes the exception, but only if the continue
//in the inner loop is to m1. If it is to m2, it compiles fine
void g(boolean b) {
m1:
for (;;) {
if (b) {
continue;
}
m2:
for (;;) {
continue m1;
}
}
}
}
Soot started on Wed Dec 07 14:54:26 GMT 2005
java.lang.NullPointerException
at soot.toolkits.graph.UnitGraph.buildUnexceptionalEdges(UnitGraph.java:129)
at soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:246)
at soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:148)
at soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:180)
at soot.jimple.toolkits.base.Aggregator.internalAggregate(Aggregator.java:114)
at soot.jimple.toolkits.base.Aggregator.internalTransform(Aggregator.java:95)
at soot.BodyTransformer.transform(BodyTransformer.java:51)
at soot.Transform.apply(Transform.java:104)
at soot.JavaToJimpleBodyPack.applyPhaseOptions(JavaToJimpleBodyPack.java:63)
at soot.JavaToJimpleBodyPack.internalApply(JavaToJimpleBodyPack.java:92)
at soot.Pack.apply(Pack.java:120)
at soot.javaToJimple.PolyglotMethodSource.getBody(PolyglotMethodSource.java:53)
at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:80)
at soot.SootMethod.retrieveActiveBody(SootMethod.java:304)
at soot.PackManager.retrieveAllBodies(PackManager.java:727)
at soot.PackManager.runPacks(PackManager.java:306)
at soot.Main.run(Main.java:179)
at soot.Main.main(Main.java:153)
Exception in thread "main"
Received on Wed Dec 7 15:01:41 2005
This archive was generated by hypermail 2.1.8 : Fri Dec 09 2005 - 01:20:08 GMT