Merge pull request #268 from richardxx/develop

Develop
fixed the handling of parameter annotations for ASM and DEX (dexpler and todex)
Merge branch 'develop' of github.com:Sable/soot into develop
Fixes a bug regarding commit 2a6ddca3adb80fc1b026ae116e584b2b5fa7a9f1.
Now, dalvik constants get initializers in clinit. However, soot could
generate code like

public void <clinit>() {
  <a.a: int a> = 2;
  return;
  <a.a: int b> = 2;  //This line is created by
ConstantValueToInitializerTransformer
  return;  //This line is created by
ConstantValueToInitializerTransformer
}

After this fix:

public void <clinit>() {
  <a.a: int b> = 2;  //This line is created by
ConstantValueToInitializerTransformer
  <a.a: int a> = 2;
  return;
}
Merge pull request #270 from MarcMil/new-branch2

Fixes a bug regarding commit 2a6ddca3adb80fc1b026ae116e584b2b5fa7a9f1.
Simplified the PointsToSet code by removing a questionable optimization from the bad old days. Unrolling arrays by hand nowadays only makes the code less readable without giving any noticeable gain.
code cleanup
fixes #269
added test cases for flow sets and fixed an issue when comparing different types of flow sets
simplified element swapping in chains, added some else-constructs to the DeadAssignmentEliminator
back to source level 1.6
now building a source JAR file as well
Merge branch 'develop' of github.com:Sable/soot into develop
fixing bug #267
also fixed in JastAdd
Merge branch 'develop' of https://github.com/Sable/soot into develop
Use the PedanticThrowAnalysis when generating the call graph in FastColorer. This is to prevent JVM VerifyError
The body of Dalvik methods containing invalid bytecode is replaced by statements throwing a RuntimeException
gracefully handle indy instructions during call-graph construction by giving a warning if verbose:cg mode is enabled
added preliminary support for handling of invokedynamic in ASM fronted, addressing bug #225

currently this still fails with...

Exception in thread "main" java.lang.RuntimeException: Failed to convert <java.util.Spliterator$OfDouble: void forEachRemaining(java.util.function.Consumer)>
	at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:1711)
	at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:91)
	at soot.SootMethod.retrieveActiveBody(SootMethod.java:324)
	at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:529)
	at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:420)
	at soot.jimple.toolkits.callgraph.CallGraphBuilder.build(CallGraphBuilder.java:84)
	at soot.jimple.toolkits.callgraph.CHATransformer.internalTransform(CHATransformer.java:43)
	at soot.SceneTransformer.transform(SceneTransformer.java:39)
	at soot.Transform.apply(Transform.java:90)
	at soot.RadioScenePack.internalApply(RadioScenePack.java:57)
	at soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:49)
	at soot.Pack.apply(Pack.java:116)
	at soot.PackManager.runWholeProgramPacks(PackManager.java:553)
	at soot.PackManager.runPacksNormally(PackManager.java:453)
	at soot.PackManager.runPacks(PackManager.java:391)
	at soot.Main.run(Main.java:203)
	at soot.Main.main(Main.java:146)
Caused by: java.lang.AssertionError: 186 already has a unit, $stack5 = dynamicinvoke "accept" <java.util.function.DoubleConsumer (java.util.function.Consumer)>(l1) <java.lang.invoke.LambdaMetafactory: java.lang.invoke.CallSite metafactory(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.invoke.MethodType,java.lang.invoke.MethodHandle,java.lang.invoke.MethodType)>(class "(D)V", handle: <java.util.function.Consumer: void accept(java.lang.Object)>, class "(D)V")
	at soot.asm.AsmMethodSource.setUnit(AsmMethodSource.java:323)
	at soot.asm.StackFrame.mergeIn(StackFrame.java:165)
	at soot.asm.AsmMethodSource.convertMethodInsn(AsmMethodSource.java:1200)
	at soot.asm.AsmMethodSource.convert(AsmMethodSource.java:1544)
	at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:1709)
	... 16 more

... when using the command line:
-w -keep-line-number -allow-phantom-refs -p cg all-reachable:true -f none -include-all -cp  /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/jre/lib/rt.jar java.nio.file.Files java.lang.invoke.LambdaMetafactory
Merge branch 'develop' of https://github.com/Sable/soot into develop