diff --git a/.idea/misc.xml b/.idea/misc.xml index ad4a026..6c1c664 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/src/ch/usi/inf/sp/cfg/ControlFlowGraphRenderer.java b/src/ch/usi/inf/sp/cfg/ControlFlowGraphRenderer.java index 50ed431..0e4eb28 100644 --- a/src/ch/usi/inf/sp/cfg/ControlFlowGraphRenderer.java +++ b/src/ch/usi/inf/sp/cfg/ControlFlowGraphRenderer.java @@ -10,13 +10,9 @@ public class ControlFlowGraphRenderer { private int indentationLevel = 0; private static String nodeIdentifier(final BasicBlock bb, final String graphId) { - if (bb.getInEdges().isEmpty()) { - return graphId + "e"; - } else if (bb.getOutEdges().isEmpty()) { - return graphId + "x"; - } else { - return graphId + "bb" + bb.getId(); - } + // as the basic block ID is negative for the entry and exit node, and negative numbers contain + // a dash symbol, we need to quote the identifier to make a syntactically correct DOT file + return "\"%sbb%d\"".formatted(graphId, bb.getId()); } private static String nodeStyle(final BasicBlock bb, final String label) { diff --git a/test-output/.dot b/test-output/.dot index 4e8c3cf..e3cc09e 100644 --- a/test-output/.dot +++ b/test-output/.dot @@ -1,10 +1,10 @@ digraph init { node [shape=record] - inite [shape=circle,label="e",xlabel="init"] - initx [shape=circle,label="x"] - initbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: INVOKESPECIAL java/lang/Object. ()V|4: RETURN }"] + "initbb-1" [shape=circle,label="e",xlabel="init"] + "initbb-2" [shape=circle,label="x"] + "initbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: INVOKESPECIAL java/lang/Object. ()V|4: RETURN }"] - inite -> initbb0 - initbb0 -> initx + "initbb-1" -> "initbb0" + "initbb0" -> "initbb-2" } diff --git a/test-output/all.dot b/test-output/all.dot index 5458f30..539de84 100644 --- a/test-output/all.dot +++ b/test-output/all.dot @@ -4,623 +4,623 @@ digraph all subgraph init { node [shape=record] - inite [shape=circle,label="e",xlabel="init"] - initx [shape=circle,label="x"] - initbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: INVOKESPECIAL java/lang/Object. ()V|4: RETURN }"] + "initbb-1" [shape=circle,label="e",xlabel="init"] + "initbb-2" [shape=circle,label="x"] + "initbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: INVOKESPECIAL java/lang/Object. ()V|4: RETURN }"] - inite -> initbb0 - initbb0 -> initx + "initbb-1" -> "initbb0" + "initbb0" -> "initbb-2" } subgraph alloc2Of3dArrayMethod { node [shape=record] - alloc2Of3dArrayMethode [shape=circle,label="e",xlabel="alloc2Of3dArrayMethod"] - alloc2Of3dArrayMethodx [shape=circle,label="x"] - alloc2Of3dArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ICONST_3 |4: MULTIANEWARRAY [[[I 2|5: ARETURN }"] + "alloc2Of3dArrayMethodbb-1" [shape=circle,label="e",xlabel="alloc2Of3dArrayMethod"] + "alloc2Of3dArrayMethodbb-2" [shape=circle,label="x"] + "alloc2Of3dArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ICONST_3 |4: MULTIANEWARRAY [[[I 2|5: ARETURN }"] - alloc2Of3dArrayMethode -> alloc2Of3dArrayMethodbb0 - alloc2Of3dArrayMethodbb0 -> alloc2Of3dArrayMethodx + "alloc2Of3dArrayMethodbb-1" -> "alloc2Of3dArrayMethodbb0" + "alloc2Of3dArrayMethodbb0" -> "alloc2Of3dArrayMethodbb-2" } subgraph alloc2dArrayMethod { node [shape=record] - alloc2dArrayMethode [shape=circle,label="e",xlabel="alloc2dArrayMethod"] - alloc2dArrayMethodx [shape=circle,label="x"] - alloc2dArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ICONST_3 |4: MULTIANEWARRAY [[I 2|5: ARETURN }"] + "alloc2dArrayMethodbb-1" [shape=circle,label="e",xlabel="alloc2dArrayMethod"] + "alloc2dArrayMethodbb-2" [shape=circle,label="x"] + "alloc2dArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ICONST_3 |4: MULTIANEWARRAY [[I 2|5: ARETURN }"] - alloc2dArrayMethode -> alloc2dArrayMethodbb0 - alloc2dArrayMethodbb0 -> alloc2dArrayMethodx + "alloc2dArrayMethodbb-1" -> "alloc2dArrayMethodbb0" + "alloc2dArrayMethodbb0" -> "alloc2dArrayMethodbb-2" } subgraph allocAndInit2dArrayMethod { node [shape=record] - allocAndInit2dArrayMethode [shape=circle,label="e",xlabel="allocAndInit2dArrayMethod"] - allocAndInit2dArrayMethodx [shape=circle,label="x"] - allocAndInit2dArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_1 |3: ANEWARRAY [I|4: DUP |5: ICONST_0 |6: ICONST_1 |7: NEWARRAY T_INT|8: DUP |9: ICONST_0 |10: ICONST_1 |11: IASTORE |12: AASTORE |13: ARETURN }"] + "allocAndInit2dArrayMethodbb-1" [shape=circle,label="e",xlabel="allocAndInit2dArrayMethod"] + "allocAndInit2dArrayMethodbb-2" [shape=circle,label="x"] + "allocAndInit2dArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_1 |3: ANEWARRAY [I|4: DUP |5: ICONST_0 |6: ICONST_1 |7: NEWARRAY T_INT|8: DUP |9: ICONST_0 |10: ICONST_1 |11: IASTORE |12: AASTORE |13: ARETURN }"] - allocAndInit2dArrayMethode -> allocAndInit2dArrayMethodbb0 - allocAndInit2dArrayMethodbb0 -> allocAndInit2dArrayMethodx + "allocAndInit2dArrayMethodbb-1" -> "allocAndInit2dArrayMethodbb0" + "allocAndInit2dArrayMethodbb0" -> "allocAndInit2dArrayMethodbb-2" } subgraph allocAndInitIntArrayMethod { node [shape=record] - allocAndInitIntArrayMethode [shape=circle,label="e",xlabel="allocAndInitIntArrayMethod"] - allocAndInitIntArrayMethodx [shape=circle,label="x"] - allocAndInitIntArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: NEWARRAY T_INT|4: DUP |5: ICONST_0 |6: ICONST_1 |7: IASTORE |8: DUP |9: ICONST_1 |10: ICONST_2 |11: IASTORE |12: ARETURN }"] + "allocAndInitIntArrayMethodbb-1" [shape=circle,label="e",xlabel="allocAndInitIntArrayMethod"] + "allocAndInitIntArrayMethodbb-2" [shape=circle,label="x"] + "allocAndInitIntArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: NEWARRAY T_INT|4: DUP |5: ICONST_0 |6: ICONST_1 |7: IASTORE |8: DUP |9: ICONST_1 |10: ICONST_2 |11: IASTORE |12: ARETURN }"] - allocAndInitIntArrayMethode -> allocAndInitIntArrayMethodbb0 - allocAndInitIntArrayMethodbb0 -> allocAndInitIntArrayMethodx + "allocAndInitIntArrayMethodbb-1" -> "allocAndInitIntArrayMethodbb0" + "allocAndInitIntArrayMethodbb0" -> "allocAndInitIntArrayMethodbb-2" } subgraph allocAndInitObjectArrayMethod { node [shape=record] - allocAndInitObjectArrayMethode [shape=circle,label="e",xlabel="allocAndInitObjectArrayMethod"] - allocAndInitObjectArrayMethodx [shape=circle,label="x"] - allocAndInitObjectArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ANEWARRAY java/lang/Object|4: DUP |5: ICONST_0 |6: LDC 1|7: AASTORE |8: DUP |9: ICONST_1 |10: LDC 2|11: AASTORE |12: ARETURN }"] + "allocAndInitObjectArrayMethodbb-1" [shape=circle,label="e",xlabel="allocAndInitObjectArrayMethod"] + "allocAndInitObjectArrayMethodbb-2" [shape=circle,label="x"] + "allocAndInitObjectArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ANEWARRAY java/lang/Object|4: DUP |5: ICONST_0 |6: LDC 1|7: AASTORE |8: DUP |9: ICONST_1 |10: LDC 2|11: AASTORE |12: ARETURN }"] - allocAndInitObjectArrayMethode -> allocAndInitObjectArrayMethodbb0 - allocAndInitObjectArrayMethodbb0 -> allocAndInitObjectArrayMethodx + "allocAndInitObjectArrayMethodbb-1" -> "allocAndInitObjectArrayMethodbb0" + "allocAndInitObjectArrayMethodbb0" -> "allocAndInitObjectArrayMethodbb-2" } subgraph allocIncomplete2dArrayMethod { node [shape=record] - allocIncomplete2dArrayMethode [shape=circle,label="e",xlabel="allocIncomplete2dArrayMethod"] - allocIncomplete2dArrayMethodx [shape=circle,label="x"] - allocIncomplete2dArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ANEWARRAY [I|4: ARETURN }"] + "allocIncomplete2dArrayMethodbb-1" [shape=circle,label="e",xlabel="allocIncomplete2dArrayMethod"] + "allocIncomplete2dArrayMethodbb-2" [shape=circle,label="x"] + "allocIncomplete2dArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ANEWARRAY [I|4: ARETURN }"] - allocIncomplete2dArrayMethode -> allocIncomplete2dArrayMethodbb0 - allocIncomplete2dArrayMethodbb0 -> allocIncomplete2dArrayMethodx + "allocIncomplete2dArrayMethodbb-1" -> "allocIncomplete2dArrayMethodbb0" + "allocIncomplete2dArrayMethodbb0" -> "allocIncomplete2dArrayMethodbb-2" } subgraph allocIntArrayMethod { node [shape=record] - allocIntArrayMethode [shape=circle,label="e",xlabel="allocIntArrayMethod"] - allocIntArrayMethodx [shape=circle,label="x"] - allocIntArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_3 |3: NEWARRAY T_INT|4: ARETURN }"] + "allocIntArrayMethodbb-1" [shape=circle,label="e",xlabel="allocIntArrayMethod"] + "allocIntArrayMethodbb-2" [shape=circle,label="x"] + "allocIntArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_3 |3: NEWARRAY T_INT|4: ARETURN }"] - allocIntArrayMethode -> allocIntArrayMethodbb0 - allocIntArrayMethodbb0 -> allocIntArrayMethodx + "allocIntArrayMethodbb-1" -> "allocIntArrayMethodbb0" + "allocIntArrayMethodbb0" -> "allocIntArrayMethodbb-2" } subgraph allocObjectArrayMethod { node [shape=record] - allocObjectArrayMethode [shape=circle,label="e",xlabel="allocObjectArrayMethod"] - allocObjectArrayMethodx [shape=circle,label="x"] - allocObjectArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_3 |3: ANEWARRAY java/lang/Object|4: ARETURN }"] + "allocObjectArrayMethodbb-1" [shape=circle,label="e",xlabel="allocObjectArrayMethod"] + "allocObjectArrayMethodbb-2" [shape=circle,label="x"] + "allocObjectArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_3 |3: ANEWARRAY java/lang/Object|4: ARETURN }"] - allocObjectArrayMethode -> allocObjectArrayMethodbb0 - allocObjectArrayMethodbb0 -> allocObjectArrayMethodx + "allocObjectArrayMethodbb-1" -> "allocObjectArrayMethodbb0" + "allocObjectArrayMethodbb0" -> "allocObjectArrayMethodbb-2" } subgraph allocObjectMethod { node [shape=record] - allocObjectMethode [shape=circle,label="e",xlabel="allocObjectMethod"] - allocObjectMethodx [shape=circle,label="x"] - allocObjectMethodbb0 [label="0|{0: // label|1: // line number information|2: NEW java/lang/Object|3: DUP |4: INVOKESPECIAL java/lang/Object. ()V|5: ARETURN }"] + "allocObjectMethodbb-1" [shape=circle,label="e",xlabel="allocObjectMethod"] + "allocObjectMethodbb-2" [shape=circle,label="x"] + "allocObjectMethodbb0" [label="0|{0: // label|1: // line number information|2: NEW java/lang/Object|3: DUP |4: INVOKESPECIAL java/lang/Object. ()V|5: ARETURN }"] - allocObjectMethode -> allocObjectMethodbb0 - allocObjectMethodbb0 -> allocObjectMethodx + "allocObjectMethodbb-1" -> "allocObjectMethodbb0" + "allocObjectMethodbb0" -> "allocObjectMethodbb-2" } subgraph arrayLengthMethod { node [shape=record] - arrayLengthMethode [shape=circle,label="e",xlabel="arrayLengthMethod"] - arrayLengthMethodx [shape=circle,label="x"] - arrayLengthMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ARRAYLENGTH |4: IRETURN }"] + "arrayLengthMethodbb-1" [shape=circle,label="e",xlabel="arrayLengthMethod"] + "arrayLengthMethodbb-2" [shape=circle,label="x"] + "arrayLengthMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ARRAYLENGTH |4: IRETURN }"] - arrayLengthMethode -> arrayLengthMethodbb0 - arrayLengthMethodbb0 -> arrayLengthMethodx + "arrayLengthMethodbb-1" -> "arrayLengthMethodbb0" + "arrayLengthMethodbb0" -> "arrayLengthMethodbb-2" } subgraph arrayReadMethod { node [shape=record] - arrayReadMethode [shape=circle,label="e",xlabel="arrayReadMethod"] - arrayReadMethodx [shape=circle,label="x"] - arrayReadMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ICONST_0 |4: AALOAD |5: ARETURN }"] + "arrayReadMethodbb-1" [shape=circle,label="e",xlabel="arrayReadMethod"] + "arrayReadMethodbb-2" [shape=circle,label="x"] + "arrayReadMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ICONST_0 |4: AALOAD |5: ARETURN }"] - arrayReadMethode -> arrayReadMethodbb0 - arrayReadMethodbb0 -> arrayReadMethodx + "arrayReadMethodbb-1" -> "arrayReadMethodbb0" + "arrayReadMethodbb0" -> "arrayReadMethodbb-2" } subgraph arrayWriteMethod { node [shape=record] - arrayWriteMethode [shape=circle,label="e",xlabel="arrayWriteMethod"] - arrayWriteMethodx [shape=circle,label="x"] - arrayWriteMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ICONST_0 |4: ALOAD 2|5: AASTORE |6: // label|7: // line number information|8: RETURN }"] + "arrayWriteMethodbb-1" [shape=circle,label="e",xlabel="arrayWriteMethod"] + "arrayWriteMethodbb-2" [shape=circle,label="x"] + "arrayWriteMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ICONST_0 |4: ALOAD 2|5: AASTORE |6: // label|7: // line number information|8: RETURN }"] - arrayWriteMethode -> arrayWriteMethodbb0 - arrayWriteMethodbb0 -> arrayWriteMethodx + "arrayWriteMethodbb-1" -> "arrayWriteMethodbb0" + "arrayWriteMethodbb0" -> "arrayWriteMethodbb-2" } subgraph condMethod { node [shape=record] - condMethode [shape=circle,label="e",xlabel="condMethod"] - condMethodx [shape=circle,label="x"] - condMethodbb0 [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 7}"] - condMethodbb5 [label="5|{5: ILOAD 1|6: GOTO 10}"] - condMethodbb7 [label="7|{7: // label|8: // stack frame map|9: ILOAD 2}"] - condMethodbb10 [label="10|{10: // label|11: // stack frame map|12: IRETURN }"] + "condMethodbb-1" [shape=circle,label="e",xlabel="condMethod"] + "condMethodbb-2" [shape=circle,label="x"] + "condMethodbb0" [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 7}"] + "condMethodbb5" [label="5|{5: ILOAD 1|6: GOTO 10}"] + "condMethodbb7" [label="7|{7: // label|8: // stack frame map|9: ILOAD 2}"] + "condMethodbb10" [label="10|{10: // label|11: // stack frame map|12: IRETURN }"] - condMethode -> condMethodbb0 - condMethodbb0 -> condMethodbb5 - condMethodbb7 -> condMethodbb10 - condMethodbb10 -> condMethodx - condMethodbb0 -> condMethodbb7 [label="T"] - condMethodbb5 -> condMethodbb10 [label="T"] + "condMethodbb-1" -> "condMethodbb0" + "condMethodbb0" -> "condMethodbb5" + "condMethodbb7" -> "condMethodbb10" + "condMethodbb10" -> "condMethodbb-2" + "condMethodbb0" -> "condMethodbb7" [label="T"] + "condMethodbb5" -> "condMethodbb10" [label="T"] } subgraph doWhileMethod { node [shape=record] - doWhileMethode [shape=circle,label="e",xlabel="doWhileMethod"] - doWhileMethodx [shape=circle,label="x"] - doWhileMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"] - doWhileMethodbb4 [label="4|{4: // label|5: // line number information|6: // stack frame map|7: ILOAD 2|8: ILOAD 1|9: IADD |10: ISTORE 2|11: // label|12: // line number information|13: IINC 1 -1|14: // label|15: // line number information|16: ILOAD 1|17: IFGT 4}"] - doWhileMethodbb18 [label="18|{18: // label|19: // line number information|20: ILOAD 2|21: IRETURN }"] + "doWhileMethodbb-1" [shape=circle,label="e",xlabel="doWhileMethod"] + "doWhileMethodbb-2" [shape=circle,label="x"] + "doWhileMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"] + "doWhileMethodbb4" [label="4|{4: // label|5: // line number information|6: // stack frame map|7: ILOAD 2|8: ILOAD 1|9: IADD |10: ISTORE 2|11: // label|12: // line number information|13: IINC 1 -1|14: // label|15: // line number information|16: ILOAD 1|17: IFGT 4}"] + "doWhileMethodbb18" [label="18|{18: // label|19: // line number information|20: ILOAD 2|21: IRETURN }"] - doWhileMethode -> doWhileMethodbb0 - doWhileMethodbb0 -> doWhileMethodbb4 - doWhileMethodbb4 -> doWhileMethodbb18 - doWhileMethodbb18 -> doWhileMethodx - doWhileMethodbb4 -> doWhileMethodbb4 [label="T"] + "doWhileMethodbb-1" -> "doWhileMethodbb0" + "doWhileMethodbb0" -> "doWhileMethodbb4" + "doWhileMethodbb4" -> "doWhileMethodbb18" + "doWhileMethodbb18" -> "doWhileMethodbb-2" + "doWhileMethodbb4" -> "doWhileMethodbb4" [label="T"] } subgraph doWhileTrue { node [shape=record] - doWhileTruee [shape=circle,label="e",xlabel="doWhileTrue"] - doWhileTruee [shape=circle,label="e",xlabel="doWhileTrue"] - doWhileTruebb0 [label="0|{0: // label|1: // line number information|2: // stack frame map|3: IINC 1 1|4: // label|5: // line number information|6: GOTO 0}"] + "doWhileTruebb-1" [shape=circle,label="e",xlabel="doWhileTrue"] + "doWhileTruebb-2" [shape=circle,label="e",xlabel="doWhileTrue"] + "doWhileTruebb0" [label="0|{0: // label|1: // line number information|2: // stack frame map|3: IINC 1 1|4: // label|5: // line number information|6: GOTO 0}"] - doWhileTruee -> doWhileTruebb0 - doWhileTruebb0 -> doWhileTruebb0 [label="T"] + "doWhileTruebb-1" -> "doWhileTruebb0" + "doWhileTruebb0" -> "doWhileTruebb0" [label="T"] } subgraph emptyMethod { node [shape=record] - emptyMethode [shape=circle,label="e",xlabel="emptyMethod"] - emptyMethodx [shape=circle,label="x"] - emptyMethodbb0 [label="0|{0: // label|1: // line number information|2: RETURN }"] + "emptyMethodbb-1" [shape=circle,label="e",xlabel="emptyMethod"] + "emptyMethodbb-2" [shape=circle,label="x"] + "emptyMethodbb0" [label="0|{0: // label|1: // line number information|2: RETURN }"] - emptyMethode -> emptyMethodbb0 - emptyMethodbb0 -> emptyMethodx + "emptyMethodbb-1" -> "emptyMethodbb0" + "emptyMethodbb0" -> "emptyMethodbb-2" } subgraph fieldReadMethod { node [shape=record] - fieldReadMethode [shape=circle,label="e",xlabel="fieldReadMethod"] - fieldReadMethodx [shape=circle,label="x"] - fieldReadMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: GETFIELD ExampleClass.field Ljava/lang/String;|4: ARETURN }"] + "fieldReadMethodbb-1" [shape=circle,label="e",xlabel="fieldReadMethod"] + "fieldReadMethodbb-2" [shape=circle,label="x"] + "fieldReadMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: GETFIELD ExampleClass.field Ljava/lang/String;|4: ARETURN }"] - fieldReadMethode -> fieldReadMethodbb0 - fieldReadMethodbb0 -> fieldReadMethodx + "fieldReadMethodbb-1" -> "fieldReadMethodbb0" + "fieldReadMethodbb0" -> "fieldReadMethodbb-2" } subgraph fieldWriteMethod { node [shape=record] - fieldWriteMethode [shape=circle,label="e",xlabel="fieldWriteMethod"] - fieldWriteMethodx [shape=circle,label="x"] - fieldWriteMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: ALOAD 1|4: PUTFIELD ExampleClass.field Ljava/lang/String;|5: // label|6: // line number information|7: RETURN }"] + "fieldWriteMethodbb-1" [shape=circle,label="e",xlabel="fieldWriteMethod"] + "fieldWriteMethodbb-2" [shape=circle,label="x"] + "fieldWriteMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: ALOAD 1|4: PUTFIELD ExampleClass.field Ljava/lang/String;|5: // label|6: // line number information|7: RETURN }"] - fieldWriteMethode -> fieldWriteMethodbb0 - fieldWriteMethodbb0 -> fieldWriteMethodx + "fieldWriteMethodbb-1" -> "fieldWriteMethodbb0" + "fieldWriteMethodbb0" -> "fieldWriteMethodbb-2" } subgraph forEachArrayMethod { node [shape=record] - forEachArrayMethode [shape=circle,label="e",xlabel="forEachArrayMethod"] - forEachArrayMethodx [shape=circle,label="x"] - forEachArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ALOAD 1|7: ASTORE 3|8: ALOAD 3|9: ARRAYLENGTH |10: ISTORE 4|11: ICONST_0 |12: ISTORE 5}"] - forEachArrayMethodbb13 [label="13|{13: // label|14: // stack frame map|15: ILOAD 5|16: ILOAD 4|17: IF_ICMPGE 29}"] - forEachArrayMethodbb18 [label="18|{18: ALOAD 3|19: ILOAD 5|20: AALOAD |21: ASTORE 6|22: // label|23: // line number information|24: IINC 2 1|25: // label|26: // line number information|27: IINC 5 1|28: GOTO 13}"] - forEachArrayMethodbb29 [label="29|{29: // label|30: // line number information|31: // stack frame map|32: ILOAD 2|33: IRETURN }"] + "forEachArrayMethodbb-1" [shape=circle,label="e",xlabel="forEachArrayMethod"] + "forEachArrayMethodbb-2" [shape=circle,label="x"] + "forEachArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ALOAD 1|7: ASTORE 3|8: ALOAD 3|9: ARRAYLENGTH |10: ISTORE 4|11: ICONST_0 |12: ISTORE 5}"] + "forEachArrayMethodbb13" [label="13|{13: // label|14: // stack frame map|15: ILOAD 5|16: ILOAD 4|17: IF_ICMPGE 29}"] + "forEachArrayMethodbb18" [label="18|{18: ALOAD 3|19: ILOAD 5|20: AALOAD |21: ASTORE 6|22: // label|23: // line number information|24: IINC 2 1|25: // label|26: // line number information|27: IINC 5 1|28: GOTO 13}"] + "forEachArrayMethodbb29" [label="29|{29: // label|30: // line number information|31: // stack frame map|32: ILOAD 2|33: IRETURN }"] - forEachArrayMethode -> forEachArrayMethodbb0 - forEachArrayMethodbb0 -> forEachArrayMethodbb13 - forEachArrayMethodbb13 -> forEachArrayMethodbb18 - forEachArrayMethodbb29 -> forEachArrayMethodx - forEachArrayMethodbb18 -> forEachArrayMethodbb13 [label="T"] - forEachArrayMethodbb13 -> forEachArrayMethodbb29 [label="T"] + "forEachArrayMethodbb-1" -> "forEachArrayMethodbb0" + "forEachArrayMethodbb0" -> "forEachArrayMethodbb13" + "forEachArrayMethodbb13" -> "forEachArrayMethodbb18" + "forEachArrayMethodbb29" -> "forEachArrayMethodbb-2" + "forEachArrayMethodbb18" -> "forEachArrayMethodbb13" [label="T"] + "forEachArrayMethodbb13" -> "forEachArrayMethodbb29" [label="T"] } subgraph forEachCollectionMethod { node [shape=record] - forEachCollectionMethode [shape=circle,label="e",xlabel="forEachCollectionMethod"] - forEachCollectionMethodx [shape=circle,label="x"] - forEachCollectionMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ALOAD 1|7: INVOKEINTERFACE java/util/Set.iterator ()Ljava/util/Iterator;|8: ASTORE 3}"] - forEachCollectionMethodbb9 [label="9|{9: // label|10: // stack frame map|11: ALOAD 3|12: INVOKEINTERFACE java/util/Iterator.hasNext ()Z|13: IFEQ 24}"] - forEachCollectionMethodbb14 [label="14|{14: ALOAD 3|15: INVOKEINTERFACE java/util/Iterator.next ()Ljava/lang/Object;|16: CHECKCAST java/lang/String|17: ASTORE 4|18: // label|19: // line number information|20: IINC 2 1|21: // label|22: // line number information|23: GOTO 9}"] - forEachCollectionMethodbb24 [label="24|{24: // label|25: // line number information|26: // stack frame map|27: ILOAD 2|28: IRETURN }"] + "forEachCollectionMethodbb-1" [shape=circle,label="e",xlabel="forEachCollectionMethod"] + "forEachCollectionMethodbb-2" [shape=circle,label="x"] + "forEachCollectionMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ALOAD 1|7: INVOKEINTERFACE java/util/Set.iterator ()Ljava/util/Iterator;|8: ASTORE 3}"] + "forEachCollectionMethodbb9" [label="9|{9: // label|10: // stack frame map|11: ALOAD 3|12: INVOKEINTERFACE java/util/Iterator.hasNext ()Z|13: IFEQ 24}"] + "forEachCollectionMethodbb14" [label="14|{14: ALOAD 3|15: INVOKEINTERFACE java/util/Iterator.next ()Ljava/lang/Object;|16: CHECKCAST java/lang/String|17: ASTORE 4|18: // label|19: // line number information|20: IINC 2 1|21: // label|22: // line number information|23: GOTO 9}"] + "forEachCollectionMethodbb24" [label="24|{24: // label|25: // line number information|26: // stack frame map|27: ILOAD 2|28: IRETURN }"] - forEachCollectionMethode -> forEachCollectionMethodbb0 - forEachCollectionMethodbb0 -> forEachCollectionMethodbb9 - forEachCollectionMethodbb9 -> forEachCollectionMethodbb14 - forEachCollectionMethodbb24 -> forEachCollectionMethodx - forEachCollectionMethodbb14 -> forEachCollectionMethodbb9 [label="T"] - forEachCollectionMethodbb9 -> forEachCollectionMethodbb24 [label="T"] + "forEachCollectionMethodbb-1" -> "forEachCollectionMethodbb0" + "forEachCollectionMethodbb0" -> "forEachCollectionMethodbb9" + "forEachCollectionMethodbb9" -> "forEachCollectionMethodbb14" + "forEachCollectionMethodbb24" -> "forEachCollectionMethodbb-2" + "forEachCollectionMethodbb14" -> "forEachCollectionMethodbb9" [label="T"] + "forEachCollectionMethodbb9" -> "forEachCollectionMethodbb24" [label="T"] } subgraph forEver { node [shape=record] - forEvere [shape=circle,label="e",xlabel="forEver"] - forEvere [shape=circle,label="e",xlabel="forEver"] - forEverbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"] - forEverbb4 [label="4|{4: // label|5: // stack frame map|6: IINC 2 1|7: GOTO 4}"] + "forEverbb-1" [shape=circle,label="e",xlabel="forEver"] + "forEverbb-2" [shape=circle,label="e",xlabel="forEver"] + "forEverbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"] + "forEverbb4" [label="4|{4: // label|5: // stack frame map|6: IINC 2 1|7: GOTO 4}"] - forEvere -> forEverbb0 - forEverbb0 -> forEverbb4 - forEverbb4 -> forEverbb4 [label="T"] + "forEverbb-1" -> "forEverbb0" + "forEverbb0" -> "forEverbb4" + "forEverbb4" -> "forEverbb4" [label="T"] } subgraph forMethod { node [shape=record] - forMethode [shape=circle,label="e",xlabel="forMethod"] - forMethodx [shape=circle,label="x"] - forMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] - forMethodbb8 [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 23}"] - forMethodbb13 [label="13|{13: // label|14: // line number information|15: ILOAD 2|16: ILOAD 3|17: IADD |18: ISTORE 2|19: // label|20: // line number information|21: IINC 1 1|22: GOTO 8}"] - forMethodbb23 [label="23|{23: // label|24: // line number information|25: // stack frame map|26: ILOAD 2|27: IRETURN }"] + "forMethodbb-1" [shape=circle,label="e",xlabel="forMethod"] + "forMethodbb-2" [shape=circle,label="x"] + "forMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] + "forMethodbb8" [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 23}"] + "forMethodbb13" [label="13|{13: // label|14: // line number information|15: ILOAD 2|16: ILOAD 3|17: IADD |18: ISTORE 2|19: // label|20: // line number information|21: IINC 1 1|22: GOTO 8}"] + "forMethodbb23" [label="23|{23: // label|24: // line number information|25: // stack frame map|26: ILOAD 2|27: IRETURN }"] - forMethode -> forMethodbb0 - forMethodbb0 -> forMethodbb8 - forMethodbb8 -> forMethodbb13 - forMethodbb23 -> forMethodx - forMethodbb13 -> forMethodbb8 [label="T"] - forMethodbb8 -> forMethodbb23 [label="T"] + "forMethodbb-1" -> "forMethodbb0" + "forMethodbb0" -> "forMethodbb8" + "forMethodbb8" -> "forMethodbb13" + "forMethodbb23" -> "forMethodbb-2" + "forMethodbb13" -> "forMethodbb8" [label="T"] + "forMethodbb8" -> "forMethodbb23" [label="T"] } subgraph forWithBreakMethod { node [shape=record] - forWithBreakMethode [shape=circle,label="e",xlabel="forWithBreakMethod"] - forWithBreakMethodx [shape=circle,label="x"] - forWithBreakMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] - forWithBreakMethodbb8 [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 32}"] - forWithBreakMethodbb13 [label="13|{13: // label|14: // line number information|15: ILOAD 3|16: BIPUSH 10|17: IF_ICMPNE 21}"] - forWithBreakMethodbb18 [label="18|{18: // label|19: // line number information|20: GOTO 32}"] - forWithBreakMethodbb21 [label="21|{21: // label|22: // line number information|23: // stack frame map|24: ILOAD 2|25: ILOAD 3|26: IADD |27: ISTORE 2|28: // label|29: // line number information|30: IINC 3 1|31: GOTO 8}"] - forWithBreakMethodbb32 [label="32|{32: // label|33: // line number information|34: // stack frame map|35: ILOAD 2|36: IRETURN }"] + "forWithBreakMethodbb-1" [shape=circle,label="e",xlabel="forWithBreakMethod"] + "forWithBreakMethodbb-2" [shape=circle,label="x"] + "forWithBreakMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] + "forWithBreakMethodbb8" [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 32}"] + "forWithBreakMethodbb13" [label="13|{13: // label|14: // line number information|15: ILOAD 3|16: BIPUSH 10|17: IF_ICMPNE 21}"] + "forWithBreakMethodbb18" [label="18|{18: // label|19: // line number information|20: GOTO 32}"] + "forWithBreakMethodbb21" [label="21|{21: // label|22: // line number information|23: // stack frame map|24: ILOAD 2|25: ILOAD 3|26: IADD |27: ISTORE 2|28: // label|29: // line number information|30: IINC 3 1|31: GOTO 8}"] + "forWithBreakMethodbb32" [label="32|{32: // label|33: // line number information|34: // stack frame map|35: ILOAD 2|36: IRETURN }"] - forWithBreakMethode -> forWithBreakMethodbb0 - forWithBreakMethodbb0 -> forWithBreakMethodbb8 - forWithBreakMethodbb8 -> forWithBreakMethodbb13 - forWithBreakMethodbb13 -> forWithBreakMethodbb18 - forWithBreakMethodbb32 -> forWithBreakMethodx - forWithBreakMethodbb21 -> forWithBreakMethodbb8 [label="T"] - forWithBreakMethodbb13 -> forWithBreakMethodbb21 [label="T"] - forWithBreakMethodbb8 -> forWithBreakMethodbb32 [label="T"] - forWithBreakMethodbb18 -> forWithBreakMethodbb32 [label="T"] + "forWithBreakMethodbb-1" -> "forWithBreakMethodbb0" + "forWithBreakMethodbb0" -> "forWithBreakMethodbb8" + "forWithBreakMethodbb8" -> "forWithBreakMethodbb13" + "forWithBreakMethodbb13" -> "forWithBreakMethodbb18" + "forWithBreakMethodbb32" -> "forWithBreakMethodbb-2" + "forWithBreakMethodbb21" -> "forWithBreakMethodbb8" [label="T"] + "forWithBreakMethodbb13" -> "forWithBreakMethodbb21" [label="T"] + "forWithBreakMethodbb8" -> "forWithBreakMethodbb32" [label="T"] + "forWithBreakMethodbb18" -> "forWithBreakMethodbb32" [label="T"] } subgraph forWithContinueMethod { node [shape=record] - forWithContinueMethode [shape=circle,label="e",xlabel="forWithContinueMethod"] - forWithContinueMethodx [shape=circle,label="x"] - forWithContinueMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] - forWithContinueMethodbb8 [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 33}"] - forWithContinueMethodbb13 [label="13|{13: // label|14: // line number information|15: ILOAD 3|16: BIPUSH 10|17: IF_ICMPNE 21}"] - forWithContinueMethodbb18 [label="18|{18: // label|19: // line number information|20: GOTO 28}"] - forWithContinueMethodbb21 [label="21|{21: // label|22: // line number information|23: // stack frame map|24: ILOAD 2|25: ILOAD 3|26: IADD |27: ISTORE 2}"] - forWithContinueMethodbb28 [label="28|{28: // label|29: // line number information|30: // stack frame map|31: IINC 3 1|32: GOTO 8}"] - forWithContinueMethodbb33 [label="33|{33: // label|34: // line number information|35: // stack frame map|36: ILOAD 2|37: IRETURN }"] + "forWithContinueMethodbb-1" [shape=circle,label="e",xlabel="forWithContinueMethod"] + "forWithContinueMethodbb-2" [shape=circle,label="x"] + "forWithContinueMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] + "forWithContinueMethodbb8" [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 33}"] + "forWithContinueMethodbb13" [label="13|{13: // label|14: // line number information|15: ILOAD 3|16: BIPUSH 10|17: IF_ICMPNE 21}"] + "forWithContinueMethodbb18" [label="18|{18: // label|19: // line number information|20: GOTO 28}"] + "forWithContinueMethodbb21" [label="21|{21: // label|22: // line number information|23: // stack frame map|24: ILOAD 2|25: ILOAD 3|26: IADD |27: ISTORE 2}"] + "forWithContinueMethodbb28" [label="28|{28: // label|29: // line number information|30: // stack frame map|31: IINC 3 1|32: GOTO 8}"] + "forWithContinueMethodbb33" [label="33|{33: // label|34: // line number information|35: // stack frame map|36: ILOAD 2|37: IRETURN }"] - forWithContinueMethode -> forWithContinueMethodbb0 - forWithContinueMethodbb0 -> forWithContinueMethodbb8 - forWithContinueMethodbb8 -> forWithContinueMethodbb13 - forWithContinueMethodbb13 -> forWithContinueMethodbb18 - forWithContinueMethodbb21 -> forWithContinueMethodbb28 - forWithContinueMethodbb33 -> forWithContinueMethodx - forWithContinueMethodbb28 -> forWithContinueMethodbb8 [label="T"] - forWithContinueMethodbb13 -> forWithContinueMethodbb21 [label="T"] - forWithContinueMethodbb18 -> forWithContinueMethodbb28 [label="T"] - forWithContinueMethodbb8 -> forWithContinueMethodbb33 [label="T"] + "forWithContinueMethodbb-1" -> "forWithContinueMethodbb0" + "forWithContinueMethodbb0" -> "forWithContinueMethodbb8" + "forWithContinueMethodbb8" -> "forWithContinueMethodbb13" + "forWithContinueMethodbb13" -> "forWithContinueMethodbb18" + "forWithContinueMethodbb21" -> "forWithContinueMethodbb28" + "forWithContinueMethodbb33" -> "forWithContinueMethodbb-2" + "forWithContinueMethodbb28" -> "forWithContinueMethodbb8" [label="T"] + "forWithContinueMethodbb13" -> "forWithContinueMethodbb21" [label="T"] + "forWithContinueMethodbb18" -> "forWithContinueMethodbb28" [label="T"] + "forWithContinueMethodbb8" -> "forWithContinueMethodbb33" [label="T"] } subgraph ifElseMethod { node [shape=record] - ifElseMethode [shape=circle,label="e",xlabel="ifElseMethod"] - ifElseMethodx [shape=circle,label="x"] - ifElseMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: IFLE 13}"] - ifElseMethodbb8 [label="8|{8: // label|9: // line number information|10: ICONST_0 |11: ISTORE 2|12: GOTO 18}"] - ifElseMethodbb13 [label="13|{13: // label|14: // line number information|15: // stack frame map|16: ILOAD 1|17: ISTORE 2}"] - ifElseMethodbb18 [label="18|{18: // label|19: // line number information|20: // stack frame map|21: ILOAD 2|22: IRETURN }"] + "ifElseMethodbb-1" [shape=circle,label="e",xlabel="ifElseMethod"] + "ifElseMethodbb-2" [shape=circle,label="x"] + "ifElseMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: IFLE 13}"] + "ifElseMethodbb8" [label="8|{8: // label|9: // line number information|10: ICONST_0 |11: ISTORE 2|12: GOTO 18}"] + "ifElseMethodbb13" [label="13|{13: // label|14: // line number information|15: // stack frame map|16: ILOAD 1|17: ISTORE 2}"] + "ifElseMethodbb18" [label="18|{18: // label|19: // line number information|20: // stack frame map|21: ILOAD 2|22: IRETURN }"] - ifElseMethode -> ifElseMethodbb0 - ifElseMethodbb0 -> ifElseMethodbb8 - ifElseMethodbb13 -> ifElseMethodbb18 - ifElseMethodbb18 -> ifElseMethodx - ifElseMethodbb0 -> ifElseMethodbb13 [label="T"] - ifElseMethodbb8 -> ifElseMethodbb18 [label="T"] + "ifElseMethodbb-1" -> "ifElseMethodbb0" + "ifElseMethodbb0" -> "ifElseMethodbb8" + "ifElseMethodbb13" -> "ifElseMethodbb18" + "ifElseMethodbb18" -> "ifElseMethodbb-2" + "ifElseMethodbb0" -> "ifElseMethodbb13" [label="T"] + "ifElseMethodbb8" -> "ifElseMethodbb18" [label="T"] } subgraph ifMethod { node [shape=record] - ifMethode [shape=circle,label="e",xlabel="ifMethod"] - ifMethodx [shape=circle,label="x"] - ifMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: IFGE 12}"] - ifMethodbb8 [label="8|{8: // label|9: // line number information|10: ICONST_1 |11: ISTORE 2}"] - ifMethodbb12 [label="12|{12: // label|13: // line number information|14: // stack frame map|15: ILOAD 2|16: IRETURN }"] + "ifMethodbb-1" [shape=circle,label="e",xlabel="ifMethod"] + "ifMethodbb-2" [shape=circle,label="x"] + "ifMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: IFGE 12}"] + "ifMethodbb8" [label="8|{8: // label|9: // line number information|10: ICONST_1 |11: ISTORE 2}"] + "ifMethodbb12" [label="12|{12: // label|13: // line number information|14: // stack frame map|15: ILOAD 2|16: IRETURN }"] - ifMethode -> ifMethodbb0 - ifMethodbb0 -> ifMethodbb8 - ifMethodbb8 -> ifMethodbb12 - ifMethodbb12 -> ifMethodx - ifMethodbb0 -> ifMethodbb12 [label="T"] + "ifMethodbb-1" -> "ifMethodbb0" + "ifMethodbb0" -> "ifMethodbb8" + "ifMethodbb8" -> "ifMethodbb12" + "ifMethodbb12" -> "ifMethodbb-2" + "ifMethodbb0" -> "ifMethodbb12" [label="T"] } subgraph instanceCallMethod { node [shape=record] - instanceCallMethode [shape=circle,label="e",xlabel="instanceCallMethod"] - instanceCallMethodx [shape=circle,label="x"] - instanceCallMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKEVIRTUAL ExampleClass.instanceCallTarget ()V|4: // label|5: // line number information|6: ICONST_2 |7: IRETURN }"] + "instanceCallMethodbb-1" [shape=circle,label="e",xlabel="instanceCallMethod"] + "instanceCallMethodbb-2" [shape=circle,label="x"] + "instanceCallMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKEVIRTUAL ExampleClass.instanceCallTarget ()V|4: // label|5: // line number information|6: ICONST_2 |7: IRETURN }"] - instanceCallMethode -> instanceCallMethodbb0 - instanceCallMethodbb0 -> instanceCallMethodx + "instanceCallMethodbb-1" -> "instanceCallMethodbb0" + "instanceCallMethodbb0" -> "instanceCallMethodbb-2" } subgraph instanceCallTarget { node [shape=record] - instanceCallTargete [shape=circle,label="e",xlabel="instanceCallTarget"] - instanceCallTargetx [shape=circle,label="x"] - instanceCallTargetbb0 [label="0|{0: // label|1: // line number information|2: RETURN }"] + "instanceCallTargetbb-1" [shape=circle,label="e",xlabel="instanceCallTarget"] + "instanceCallTargetbb-2" [shape=circle,label="x"] + "instanceCallTargetbb0" [label="0|{0: // label|1: // line number information|2: RETURN }"] - instanceCallTargete -> instanceCallTargetbb0 - instanceCallTargetbb0 -> instanceCallTargetx + "instanceCallTargetbb-1" -> "instanceCallTargetbb0" + "instanceCallTargetbb0" -> "instanceCallTargetbb-2" } subgraph interfaceCallMethod { node [shape=record] - interfaceCallMethode [shape=circle,label="e",xlabel="interfaceCallMethod"] - interfaceCallMethodx [shape=circle,label="x"] - interfaceCallMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKEINTERFACE ExampleClass$Interface.interfaceCallTarget ()V|4: // label|5: // line number information|6: ICONST_2 |7: IRETURN }"] + "interfaceCallMethodbb-1" [shape=circle,label="e",xlabel="interfaceCallMethod"] + "interfaceCallMethodbb-2" [shape=circle,label="x"] + "interfaceCallMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKEINTERFACE ExampleClass$Interface.interfaceCallTarget ()V|4: // label|5: // line number information|6: ICONST_2 |7: IRETURN }"] - interfaceCallMethode -> interfaceCallMethodbb0 - interfaceCallMethodbb0 -> interfaceCallMethodx + "interfaceCallMethodbb-1" -> "interfaceCallMethodbb0" + "interfaceCallMethodbb0" -> "interfaceCallMethodbb-2" } subgraph nestedFor { node [shape=record] - nestedFore [shape=circle,label="e",xlabel="nestedFor"] - nestedForx [shape=circle,label="x"] - nestedForbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] - nestedForbb8 [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 37}"] - nestedForbb13 [label="13|{13: // label|14: // line number information|15: ICONST_0 |16: ISTORE 4}"] - nestedForbb17 [label="17|{17: // label|18: // stack frame map|19: ILOAD 4|20: ILOAD 3|21: IF_ICMPGE 32}"] - nestedForbb22 [label="22|{22: // label|23: // line number information|24: ILOAD 2|25: ILOAD 4|26: IADD |27: ISTORE 2|28: // label|29: // line number information|30: IINC 4 1|31: GOTO 17}"] - nestedForbb32 [label="32|{32: // label|33: // line number information|34: // stack frame map|35: IINC 3 1|36: GOTO 8}"] - nestedForbb37 [label="37|{37: // label|38: // line number information|39: // stack frame map|40: ILOAD 2|41: IRETURN }"] + "nestedForbb-1" [shape=circle,label="e",xlabel="nestedFor"] + "nestedForbb-2" [shape=circle,label="x"] + "nestedForbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] + "nestedForbb8" [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 37}"] + "nestedForbb13" [label="13|{13: // label|14: // line number information|15: ICONST_0 |16: ISTORE 4}"] + "nestedForbb17" [label="17|{17: // label|18: // stack frame map|19: ILOAD 4|20: ILOAD 3|21: IF_ICMPGE 32}"] + "nestedForbb22" [label="22|{22: // label|23: // line number information|24: ILOAD 2|25: ILOAD 4|26: IADD |27: ISTORE 2|28: // label|29: // line number information|30: IINC 4 1|31: GOTO 17}"] + "nestedForbb32" [label="32|{32: // label|33: // line number information|34: // stack frame map|35: IINC 3 1|36: GOTO 8}"] + "nestedForbb37" [label="37|{37: // label|38: // line number information|39: // stack frame map|40: ILOAD 2|41: IRETURN }"] - nestedFore -> nestedForbb0 - nestedForbb0 -> nestedForbb8 - nestedForbb8 -> nestedForbb13 - nestedForbb13 -> nestedForbb17 - nestedForbb17 -> nestedForbb22 - nestedForbb37 -> nestedForx - nestedForbb32 -> nestedForbb8 [label="T"] - nestedForbb22 -> nestedForbb17 [label="T"] - nestedForbb17 -> nestedForbb32 [label="T"] - nestedForbb8 -> nestedForbb37 [label="T"] + "nestedForbb-1" -> "nestedForbb0" + "nestedForbb0" -> "nestedForbb8" + "nestedForbb8" -> "nestedForbb13" + "nestedForbb13" -> "nestedForbb17" + "nestedForbb17" -> "nestedForbb22" + "nestedForbb37" -> "nestedForbb-2" + "nestedForbb32" -> "nestedForbb8" [label="T"] + "nestedForbb22" -> "nestedForbb17" [label="T"] + "nestedForbb17" -> "nestedForbb32" [label="T"] + "nestedForbb8" -> "nestedForbb37" [label="T"] } subgraph nonShortCircuitMethod { node [shape=record] - nonShortCircuitMethode [shape=circle,label="e",xlabel="nonShortCircuitMethod"] - nonShortCircuitMethodx [shape=circle,label="x"] - nonShortCircuitMethodbb0 [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 7}"] - nonShortCircuitMethodbb5 [label="5|{5: ICONST_1 |6: GOTO 10}"] - nonShortCircuitMethodbb7 [label="7|{7: // label|8: // stack frame map|9: ICONST_0 }"] - nonShortCircuitMethodbb10 [label="10|{10: // label|11: // stack frame map|12: ILOAD 1|13: ILOAD 3|14: IF_ICMPGE 17}"] - nonShortCircuitMethodbb15 [label="15|{15: ICONST_1 |16: GOTO 20}"] - nonShortCircuitMethodbb17 [label="17|{17: // label|18: // stack frame map|19: ICONST_0 }"] - nonShortCircuitMethodbb20 [label="20|{20: // label|21: // stack frame map|22: IAND |23: IFEQ 28}"] - nonShortCircuitMethodbb24 [label="24|{24: // label|25: // line number information|26: ICONST_1 |27: IRETURN }"] - nonShortCircuitMethodbb28 [label="28|{28: // label|29: // line number information|30: // stack frame map|31: ICONST_0 |32: IRETURN }"] + "nonShortCircuitMethodbb-1" [shape=circle,label="e",xlabel="nonShortCircuitMethod"] + "nonShortCircuitMethodbb-2" [shape=circle,label="x"] + "nonShortCircuitMethodbb0" [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 7}"] + "nonShortCircuitMethodbb5" [label="5|{5: ICONST_1 |6: GOTO 10}"] + "nonShortCircuitMethodbb7" [label="7|{7: // label|8: // stack frame map|9: ICONST_0 }"] + "nonShortCircuitMethodbb10" [label="10|{10: // label|11: // stack frame map|12: ILOAD 1|13: ILOAD 3|14: IF_ICMPGE 17}"] + "nonShortCircuitMethodbb15" [label="15|{15: ICONST_1 |16: GOTO 20}"] + "nonShortCircuitMethodbb17" [label="17|{17: // label|18: // stack frame map|19: ICONST_0 }"] + "nonShortCircuitMethodbb20" [label="20|{20: // label|21: // stack frame map|22: IAND |23: IFEQ 28}"] + "nonShortCircuitMethodbb24" [label="24|{24: // label|25: // line number information|26: ICONST_1 |27: IRETURN }"] + "nonShortCircuitMethodbb28" [label="28|{28: // label|29: // line number information|30: // stack frame map|31: ICONST_0 |32: IRETURN }"] - nonShortCircuitMethode -> nonShortCircuitMethodbb0 - nonShortCircuitMethodbb0 -> nonShortCircuitMethodbb5 - nonShortCircuitMethodbb7 -> nonShortCircuitMethodbb10 - nonShortCircuitMethodbb10 -> nonShortCircuitMethodbb15 - nonShortCircuitMethodbb17 -> nonShortCircuitMethodbb20 - nonShortCircuitMethodbb20 -> nonShortCircuitMethodbb24 - nonShortCircuitMethodbb24 -> nonShortCircuitMethodx - nonShortCircuitMethodbb24 -> nonShortCircuitMethodbb28 - nonShortCircuitMethodbb28 -> nonShortCircuitMethodx - nonShortCircuitMethodbb0 -> nonShortCircuitMethodbb7 [label="T"] - nonShortCircuitMethodbb5 -> nonShortCircuitMethodbb10 [label="T"] - nonShortCircuitMethodbb10 -> nonShortCircuitMethodbb17 [label="T"] - nonShortCircuitMethodbb15 -> nonShortCircuitMethodbb20 [label="T"] - nonShortCircuitMethodbb20 -> nonShortCircuitMethodbb28 [label="T"] + "nonShortCircuitMethodbb-1" -> "nonShortCircuitMethodbb0" + "nonShortCircuitMethodbb0" -> "nonShortCircuitMethodbb5" + "nonShortCircuitMethodbb7" -> "nonShortCircuitMethodbb10" + "nonShortCircuitMethodbb10" -> "nonShortCircuitMethodbb15" + "nonShortCircuitMethodbb17" -> "nonShortCircuitMethodbb20" + "nonShortCircuitMethodbb20" -> "nonShortCircuitMethodbb24" + "nonShortCircuitMethodbb24" -> "nonShortCircuitMethodbb-2" + "nonShortCircuitMethodbb24" -> "nonShortCircuitMethodbb28" + "nonShortCircuitMethodbb28" -> "nonShortCircuitMethodbb-2" + "nonShortCircuitMethodbb0" -> "nonShortCircuitMethodbb7" [label="T"] + "nonShortCircuitMethodbb5" -> "nonShortCircuitMethodbb10" [label="T"] + "nonShortCircuitMethodbb10" -> "nonShortCircuitMethodbb17" [label="T"] + "nonShortCircuitMethodbb15" -> "nonShortCircuitMethodbb20" [label="T"] + "nonShortCircuitMethodbb20" -> "nonShortCircuitMethodbb28" [label="T"] } subgraph privateInstanceCallMethod { node [shape=record] - privateInstanceCallMethode [shape=circle,label="e",xlabel="privateInstanceCallMethod"] - privateInstanceCallMethodx [shape=circle,label="x"] - privateInstanceCallMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKESPECIAL ExampleClass.privateInstanceCallTarget ()V|4: // label|5: // line number information|6: ICONST_2 |7: IRETURN }"] + "privateInstanceCallMethodbb-1" [shape=circle,label="e",xlabel="privateInstanceCallMethod"] + "privateInstanceCallMethodbb-2" [shape=circle,label="x"] + "privateInstanceCallMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKESPECIAL ExampleClass.privateInstanceCallTarget ()V|4: // label|5: // line number information|6: ICONST_2 |7: IRETURN }"] - privateInstanceCallMethode -> privateInstanceCallMethodbb0 - privateInstanceCallMethodbb0 -> privateInstanceCallMethodx + "privateInstanceCallMethodbb-1" -> "privateInstanceCallMethodbb0" + "privateInstanceCallMethodbb0" -> "privateInstanceCallMethodbb-2" } subgraph privateInstanceCallTarget { node [shape=record] - privateInstanceCallTargete [shape=circle,label="e",xlabel="privateInstanceCallTarget"] - privateInstanceCallTargetx [shape=circle,label="x"] - privateInstanceCallTargetbb0 [label="0|{0: // label|1: // line number information|2: RETURN }"] + "privateInstanceCallTargetbb-1" [shape=circle,label="e",xlabel="privateInstanceCallTarget"] + "privateInstanceCallTargetbb-2" [shape=circle,label="x"] + "privateInstanceCallTargetbb0" [label="0|{0: // label|1: // line number information|2: RETURN }"] - privateInstanceCallTargete -> privateInstanceCallTargetbb0 - privateInstanceCallTargetbb0 -> privateInstanceCallTargetx + "privateInstanceCallTargetbb-1" -> "privateInstanceCallTargetbb0" + "privateInstanceCallTargetbb0" -> "privateInstanceCallTargetbb-2" } subgraph shortCircuitMethod { node [shape=record] - shortCircuitMethode [shape=circle,label="e",xlabel="shortCircuitMethod"] - shortCircuitMethodx [shape=circle,label="x"] - shortCircuitMethodbb0 [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 12}"] - shortCircuitMethodbb5 [label="5|{5: ILOAD 1|6: ILOAD 3|7: IF_ICMPGE 12}"] - shortCircuitMethodbb8 [label="8|{8: // label|9: // line number information|10: ICONST_1 |11: IRETURN }"] - shortCircuitMethodbb12 [label="12|{12: // label|13: // line number information|14: // stack frame map|15: ICONST_0 |16: IRETURN }"] + "shortCircuitMethodbb-1" [shape=circle,label="e",xlabel="shortCircuitMethod"] + "shortCircuitMethodbb-2" [shape=circle,label="x"] + "shortCircuitMethodbb0" [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 12}"] + "shortCircuitMethodbb5" [label="5|{5: ILOAD 1|6: ILOAD 3|7: IF_ICMPGE 12}"] + "shortCircuitMethodbb8" [label="8|{8: // label|9: // line number information|10: ICONST_1 |11: IRETURN }"] + "shortCircuitMethodbb12" [label="12|{12: // label|13: // line number information|14: // stack frame map|15: ICONST_0 |16: IRETURN }"] - shortCircuitMethode -> shortCircuitMethodbb0 - shortCircuitMethodbb0 -> shortCircuitMethodbb5 - shortCircuitMethodbb5 -> shortCircuitMethodbb8 - shortCircuitMethodbb8 -> shortCircuitMethodx - shortCircuitMethodbb8 -> shortCircuitMethodbb12 - shortCircuitMethodbb12 -> shortCircuitMethodx - shortCircuitMethodbb0 -> shortCircuitMethodbb12 [label="T"] - shortCircuitMethodbb5 -> shortCircuitMethodbb12 [label="T"] + "shortCircuitMethodbb-1" -> "shortCircuitMethodbb0" + "shortCircuitMethodbb0" -> "shortCircuitMethodbb5" + "shortCircuitMethodbb5" -> "shortCircuitMethodbb8" + "shortCircuitMethodbb8" -> "shortCircuitMethodbb-2" + "shortCircuitMethodbb8" -> "shortCircuitMethodbb12" + "shortCircuitMethodbb12" -> "shortCircuitMethodbb-2" + "shortCircuitMethodbb0" -> "shortCircuitMethodbb12" [label="T"] + "shortCircuitMethodbb5" -> "shortCircuitMethodbb12" [label="T"] } subgraph staticCallMethod { node [shape=record] - staticCallMethode [shape=circle,label="e",xlabel="staticCallMethod"] - staticCallMethodx [shape=circle,label="x"] - staticCallMethodbb0 [label="0|{0: // label|1: // line number information|2: INVOKESTATIC ExampleClass.staticCallTarget ()V|3: // label|4: // line number information|5: ICONST_2 |6: IRETURN }"] + "staticCallMethodbb-1" [shape=circle,label="e",xlabel="staticCallMethod"] + "staticCallMethodbb-2" [shape=circle,label="x"] + "staticCallMethodbb0" [label="0|{0: // label|1: // line number information|2: INVOKESTATIC ExampleClass.staticCallTarget ()V|3: // label|4: // line number information|5: ICONST_2 |6: IRETURN }"] - staticCallMethode -> staticCallMethodbb0 - staticCallMethodbb0 -> staticCallMethodx + "staticCallMethodbb-1" -> "staticCallMethodbb0" + "staticCallMethodbb0" -> "staticCallMethodbb-2" } subgraph staticCallTarget { node [shape=record] - staticCallTargete [shape=circle,label="e",xlabel="staticCallTarget"] - staticCallTargetx [shape=circle,label="x"] - staticCallTargetbb0 [label="0|{0: // label|1: // line number information|2: RETURN }"] + "staticCallTargetbb-1" [shape=circle,label="e",xlabel="staticCallTarget"] + "staticCallTargetbb-2" [shape=circle,label="x"] + "staticCallTargetbb0" [label="0|{0: // label|1: // line number information|2: RETURN }"] - staticCallTargete -> staticCallTargetbb0 - staticCallTargetbb0 -> staticCallTargetx + "staticCallTargetbb-1" -> "staticCallTargetbb0" + "staticCallTargetbb0" -> "staticCallTargetbb-2" } subgraph staticFieldReadMethod { node [shape=record] - staticFieldReadMethode [shape=circle,label="e",xlabel="staticFieldReadMethod"] - staticFieldReadMethodx [shape=circle,label="x"] - staticFieldReadMethodbb0 [label="0|{0: // label|1: // line number information|2: GETSTATIC ExampleClass.staticField Ljava/lang/String;|3: ARETURN }"] + "staticFieldReadMethodbb-1" [shape=circle,label="e",xlabel="staticFieldReadMethod"] + "staticFieldReadMethodbb-2" [shape=circle,label="x"] + "staticFieldReadMethodbb0" [label="0|{0: // label|1: // line number information|2: GETSTATIC ExampleClass.staticField Ljava/lang/String;|3: ARETURN }"] - staticFieldReadMethode -> staticFieldReadMethodbb0 - staticFieldReadMethodbb0 -> staticFieldReadMethodx + "staticFieldReadMethodbb-1" -> "staticFieldReadMethodbb0" + "staticFieldReadMethodbb0" -> "staticFieldReadMethodbb-2" } subgraph staticFieldWriteMethod { node [shape=record] - staticFieldWriteMethode [shape=circle,label="e",xlabel="staticFieldWriteMethod"] - staticFieldWriteMethodx [shape=circle,label="x"] - staticFieldWriteMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: PUTSTATIC ExampleClass.staticField Ljava/lang/String;|4: // label|5: // line number information|6: RETURN }"] + "staticFieldWriteMethodbb-1" [shape=circle,label="e",xlabel="staticFieldWriteMethod"] + "staticFieldWriteMethodbb-2" [shape=circle,label="x"] + "staticFieldWriteMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: PUTSTATIC ExampleClass.staticField Ljava/lang/String;|4: // label|5: // line number information|6: RETURN }"] - staticFieldWriteMethode -> staticFieldWriteMethodbb0 - staticFieldWriteMethodbb0 -> staticFieldWriteMethodx + "staticFieldWriteMethodbb-1" -> "staticFieldWriteMethodbb0" + "staticFieldWriteMethodbb0" -> "staticFieldWriteMethodbb-2" } subgraph switchMethod { node [shape=record] - switchMethode [shape=circle,label="e",xlabel="switchMethod"] - switchMethodx [shape=circle,label="x"] - switchMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: TABLESWITCH 0: 8, 1: 14, 2: 20, default: 26}"] - switchMethodbb8 [label="8|{8: // label|9: // line number information|10: // stack frame map|11: ICONST_0 |12: ISTORE 2|13: GOTO 31}"] - switchMethodbb14 [label="14|{14: // label|15: // line number information|16: // stack frame map|17: ICONST_1 |18: ISTORE 2|19: GOTO 31}"] - switchMethodbb20 [label="20|{20: // label|21: // line number information|22: // stack frame map|23: ICONST_2 |24: ISTORE 2|25: GOTO 31}"] - switchMethodbb26 [label="26|{26: // label|27: // line number information|28: // stack frame map|29: ICONST_M1 |30: ISTORE 2}"] - switchMethodbb31 [label="31|{31: // label|32: // line number information|33: // stack frame map|34: ILOAD 2|35: IRETURN }"] + "switchMethodbb-1" [shape=circle,label="e",xlabel="switchMethod"] + "switchMethodbb-2" [shape=circle,label="x"] + "switchMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: TABLESWITCH 0: 8, 1: 14, 2: 20, default: 26}"] + "switchMethodbb8" [label="8|{8: // label|9: // line number information|10: // stack frame map|11: ICONST_0 |12: ISTORE 2|13: GOTO 31}"] + "switchMethodbb14" [label="14|{14: // label|15: // line number information|16: // stack frame map|17: ICONST_1 |18: ISTORE 2|19: GOTO 31}"] + "switchMethodbb20" [label="20|{20: // label|21: // line number information|22: // stack frame map|23: ICONST_2 |24: ISTORE 2|25: GOTO 31}"] + "switchMethodbb26" [label="26|{26: // label|27: // line number information|28: // stack frame map|29: ICONST_M1 |30: ISTORE 2}"] + "switchMethodbb31" [label="31|{31: // label|32: // line number information|33: // stack frame map|34: ILOAD 2|35: IRETURN }"] - switchMethode -> switchMethodbb0 - switchMethodbb26 -> switchMethodbb31 - switchMethodbb31 -> switchMethodx - switchMethodbb0 -> switchMethodbb8 [label="0"] - switchMethodbb0 -> switchMethodbb14 [label="1"] - switchMethodbb0 -> switchMethodbb20 [label="2"] - switchMethodbb0 -> switchMethodbb26 [label="default"] - switchMethodbb8 -> switchMethodbb31 [label="T"] - switchMethodbb14 -> switchMethodbb31 [label="T"] - switchMethodbb20 -> switchMethodbb31 [label="T"] + "switchMethodbb-1" -> "switchMethodbb0" + "switchMethodbb26" -> "switchMethodbb31" + "switchMethodbb31" -> "switchMethodbb-2" + "switchMethodbb0" -> "switchMethodbb8" [label="0"] + "switchMethodbb0" -> "switchMethodbb14" [label="1"] + "switchMethodbb0" -> "switchMethodbb20" [label="2"] + "switchMethodbb0" -> "switchMethodbb26" [label="default"] + "switchMethodbb8" -> "switchMethodbb31" [label="T"] + "switchMethodbb14" -> "switchMethodbb31" [label="T"] + "switchMethodbb20" -> "switchMethodbb31" [label="T"] } subgraph switchMethod2 { node [shape=record] - switchMethod2e [shape=circle,label="e",xlabel="switchMethod2"] - switchMethod2x [shape=circle,label="x"] - switchMethod2bb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: LOOKUPSWITCH 0: 8, 1000: 14, 2000: 20, default: 26}"] - switchMethod2bb8 [label="8|{8: // label|9: // line number information|10: // stack frame map|11: ICONST_0 |12: ISTORE 2|13: GOTO 31}"] - switchMethod2bb14 [label="14|{14: // label|15: // line number information|16: // stack frame map|17: ICONST_1 |18: ISTORE 2|19: GOTO 31}"] - switchMethod2bb20 [label="20|{20: // label|21: // line number information|22: // stack frame map|23: ICONST_2 |24: ISTORE 2|25: GOTO 31}"] - switchMethod2bb26 [label="26|{26: // label|27: // line number information|28: // stack frame map|29: ICONST_M1 |30: ISTORE 2}"] - switchMethod2bb31 [label="31|{31: // label|32: // line number information|33: // stack frame map|34: ILOAD 2|35: IRETURN }"] + "switchMethod2bb-1" [shape=circle,label="e",xlabel="switchMethod2"] + "switchMethod2bb-2" [shape=circle,label="x"] + "switchMethod2bb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: LOOKUPSWITCH 0: 8, 1000: 14, 2000: 20, default: 26}"] + "switchMethod2bb8" [label="8|{8: // label|9: // line number information|10: // stack frame map|11: ICONST_0 |12: ISTORE 2|13: GOTO 31}"] + "switchMethod2bb14" [label="14|{14: // label|15: // line number information|16: // stack frame map|17: ICONST_1 |18: ISTORE 2|19: GOTO 31}"] + "switchMethod2bb20" [label="20|{20: // label|21: // line number information|22: // stack frame map|23: ICONST_2 |24: ISTORE 2|25: GOTO 31}"] + "switchMethod2bb26" [label="26|{26: // label|27: // line number information|28: // stack frame map|29: ICONST_M1 |30: ISTORE 2}"] + "switchMethod2bb31" [label="31|{31: // label|32: // line number information|33: // stack frame map|34: ILOAD 2|35: IRETURN }"] - switchMethod2e -> switchMethod2bb0 - switchMethod2bb26 -> switchMethod2bb31 - switchMethod2bb31 -> switchMethod2x - switchMethod2bb0 -> switchMethod2bb8 [label="0"] - switchMethod2bb0 -> switchMethod2bb14 [label="1000"] - switchMethod2bb0 -> switchMethod2bb20 [label="2000"] - switchMethod2bb0 -> switchMethod2bb26 [label="default"] - switchMethod2bb8 -> switchMethod2bb31 [label="T"] - switchMethod2bb14 -> switchMethod2bb31 [label="T"] - switchMethod2bb20 -> switchMethod2bb31 [label="T"] + "switchMethod2bb-1" -> "switchMethod2bb0" + "switchMethod2bb26" -> "switchMethod2bb31" + "switchMethod2bb31" -> "switchMethod2bb-2" + "switchMethod2bb0" -> "switchMethod2bb8" [label="0"] + "switchMethod2bb0" -> "switchMethod2bb14" [label="1000"] + "switchMethod2bb0" -> "switchMethod2bb20" [label="2000"] + "switchMethod2bb0" -> "switchMethod2bb26" [label="default"] + "switchMethod2bb8" -> "switchMethod2bb31" [label="T"] + "switchMethod2bb14" -> "switchMethod2bb31" [label="T"] + "switchMethod2bb20" -> "switchMethod2bb31" [label="T"] } subgraph whileMethod { node [shape=record] - whileMethode [shape=circle,label="e",xlabel="whileMethod"] - whileMethodx [shape=circle,label="x"] - whileMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"] - whileMethodbb4 [label="4|{4: // label|5: // line number information|6: // stack frame map|7: ILOAD 1|8: IFLE 19}"] - whileMethodbb9 [label="9|{9: // label|10: // line number information|11: ILOAD 2|12: ILOAD 1|13: IADD |14: ISTORE 2|15: // label|16: // line number information|17: IINC 1 -1|18: GOTO 4}"] - whileMethodbb19 [label="19|{19: // label|20: // line number information|21: // stack frame map|22: ILOAD 2|23: IRETURN }"] + "whileMethodbb-1" [shape=circle,label="e",xlabel="whileMethod"] + "whileMethodbb-2" [shape=circle,label="x"] + "whileMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"] + "whileMethodbb4" [label="4|{4: // label|5: // line number information|6: // stack frame map|7: ILOAD 1|8: IFLE 19}"] + "whileMethodbb9" [label="9|{9: // label|10: // line number information|11: ILOAD 2|12: ILOAD 1|13: IADD |14: ISTORE 2|15: // label|16: // line number information|17: IINC 1 -1|18: GOTO 4}"] + "whileMethodbb19" [label="19|{19: // label|20: // line number information|21: // stack frame map|22: ILOAD 2|23: IRETURN }"] - whileMethode -> whileMethodbb0 - whileMethodbb0 -> whileMethodbb4 - whileMethodbb4 -> whileMethodbb9 - whileMethodbb19 -> whileMethodx - whileMethodbb9 -> whileMethodbb4 [label="T"] - whileMethodbb4 -> whileMethodbb19 [label="T"] + "whileMethodbb-1" -> "whileMethodbb0" + "whileMethodbb0" -> "whileMethodbb4" + "whileMethodbb4" -> "whileMethodbb9" + "whileMethodbb19" -> "whileMethodbb-2" + "whileMethodbb9" -> "whileMethodbb4" [label="T"] + "whileMethodbb4" -> "whileMethodbb19" [label="T"] } subgraph whileTrueMethod { node [shape=record] - whileTrueMethode [shape=circle,label="e",xlabel="whileTrueMethod"] - whileTrueMethode [shape=circle,label="e",xlabel="whileTrueMethod"] - whileTrueMethodbb0 [label="0|{0: // label|1: // line number information|2: // stack frame map|3: IINC 1 1|4: GOTO 0}"] + "whileTrueMethodbb-1" [shape=circle,label="e",xlabel="whileTrueMethod"] + "whileTrueMethodbb-2" [shape=circle,label="e",xlabel="whileTrueMethod"] + "whileTrueMethodbb0" [label="0|{0: // label|1: // line number information|2: // stack frame map|3: IINC 1 1|4: GOTO 0}"] - whileTrueMethode -> whileTrueMethodbb0 - whileTrueMethodbb0 -> whileTrueMethodbb0 [label="T"] + "whileTrueMethodbb-1" -> "whileTrueMethodbb0" + "whileTrueMethodbb0" -> "whileTrueMethodbb0" [label="T"] } } diff --git a/test-output/all.pdf b/test-output/all.pdf index c4d1f98..b3d911c 100644 Binary files a/test-output/all.pdf and b/test-output/all.pdf differ diff --git a/test-output/alloc2Of3dArrayMethod.dot b/test-output/alloc2Of3dArrayMethod.dot index 0f8ee30..31add51 100644 --- a/test-output/alloc2Of3dArrayMethod.dot +++ b/test-output/alloc2Of3dArrayMethod.dot @@ -1,10 +1,10 @@ digraph alloc2Of3dArrayMethod { node [shape=record] - alloc2Of3dArrayMethode [shape=circle,label="e",xlabel="alloc2Of3dArrayMethod"] - alloc2Of3dArrayMethodx [shape=circle,label="x"] - alloc2Of3dArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ICONST_3 |4: MULTIANEWARRAY [[[I 2|5: ARETURN }"] + "alloc2Of3dArrayMethodbb-1" [shape=circle,label="e",xlabel="alloc2Of3dArrayMethod"] + "alloc2Of3dArrayMethodbb-2" [shape=circle,label="x"] + "alloc2Of3dArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ICONST_3 |4: MULTIANEWARRAY [[[I 2|5: ARETURN }"] - alloc2Of3dArrayMethode -> alloc2Of3dArrayMethodbb0 - alloc2Of3dArrayMethodbb0 -> alloc2Of3dArrayMethodx + "alloc2Of3dArrayMethodbb-1" -> "alloc2Of3dArrayMethodbb0" + "alloc2Of3dArrayMethodbb0" -> "alloc2Of3dArrayMethodbb-2" } diff --git a/test-output/alloc2dArrayMethod.dot b/test-output/alloc2dArrayMethod.dot index d9210a2..820b1e8 100644 --- a/test-output/alloc2dArrayMethod.dot +++ b/test-output/alloc2dArrayMethod.dot @@ -1,10 +1,10 @@ digraph alloc2dArrayMethod { node [shape=record] - alloc2dArrayMethode [shape=circle,label="e",xlabel="alloc2dArrayMethod"] - alloc2dArrayMethodx [shape=circle,label="x"] - alloc2dArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ICONST_3 |4: MULTIANEWARRAY [[I 2|5: ARETURN }"] + "alloc2dArrayMethodbb-1" [shape=circle,label="e",xlabel="alloc2dArrayMethod"] + "alloc2dArrayMethodbb-2" [shape=circle,label="x"] + "alloc2dArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ICONST_3 |4: MULTIANEWARRAY [[I 2|5: ARETURN }"] - alloc2dArrayMethode -> alloc2dArrayMethodbb0 - alloc2dArrayMethodbb0 -> alloc2dArrayMethodx + "alloc2dArrayMethodbb-1" -> "alloc2dArrayMethodbb0" + "alloc2dArrayMethodbb0" -> "alloc2dArrayMethodbb-2" } diff --git a/test-output/allocAndInit2dArrayMethod.dot b/test-output/allocAndInit2dArrayMethod.dot index 425e512..28f2f55 100644 --- a/test-output/allocAndInit2dArrayMethod.dot +++ b/test-output/allocAndInit2dArrayMethod.dot @@ -1,10 +1,10 @@ digraph allocAndInit2dArrayMethod { node [shape=record] - allocAndInit2dArrayMethode [shape=circle,label="e",xlabel="allocAndInit2dArrayMethod"] - allocAndInit2dArrayMethodx [shape=circle,label="x"] - allocAndInit2dArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_1 |3: ANEWARRAY [I|4: DUP |5: ICONST_0 |6: ICONST_1 |7: NEWARRAY T_INT|8: DUP |9: ICONST_0 |10: ICONST_1 |11: IASTORE |12: AASTORE |13: ARETURN }"] + "allocAndInit2dArrayMethodbb-1" [shape=circle,label="e",xlabel="allocAndInit2dArrayMethod"] + "allocAndInit2dArrayMethodbb-2" [shape=circle,label="x"] + "allocAndInit2dArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_1 |3: ANEWARRAY [I|4: DUP |5: ICONST_0 |6: ICONST_1 |7: NEWARRAY T_INT|8: DUP |9: ICONST_0 |10: ICONST_1 |11: IASTORE |12: AASTORE |13: ARETURN }"] - allocAndInit2dArrayMethode -> allocAndInit2dArrayMethodbb0 - allocAndInit2dArrayMethodbb0 -> allocAndInit2dArrayMethodx + "allocAndInit2dArrayMethodbb-1" -> "allocAndInit2dArrayMethodbb0" + "allocAndInit2dArrayMethodbb0" -> "allocAndInit2dArrayMethodbb-2" } diff --git a/test-output/allocAndInitIntArrayMethod.dot b/test-output/allocAndInitIntArrayMethod.dot index 4303ece..2ddab58 100644 --- a/test-output/allocAndInitIntArrayMethod.dot +++ b/test-output/allocAndInitIntArrayMethod.dot @@ -1,10 +1,10 @@ digraph allocAndInitIntArrayMethod { node [shape=record] - allocAndInitIntArrayMethode [shape=circle,label="e",xlabel="allocAndInitIntArrayMethod"] - allocAndInitIntArrayMethodx [shape=circle,label="x"] - allocAndInitIntArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: NEWARRAY T_INT|4: DUP |5: ICONST_0 |6: ICONST_1 |7: IASTORE |8: DUP |9: ICONST_1 |10: ICONST_2 |11: IASTORE |12: ARETURN }"] + "allocAndInitIntArrayMethodbb-1" [shape=circle,label="e",xlabel="allocAndInitIntArrayMethod"] + "allocAndInitIntArrayMethodbb-2" [shape=circle,label="x"] + "allocAndInitIntArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: NEWARRAY T_INT|4: DUP |5: ICONST_0 |6: ICONST_1 |7: IASTORE |8: DUP |9: ICONST_1 |10: ICONST_2 |11: IASTORE |12: ARETURN }"] - allocAndInitIntArrayMethode -> allocAndInitIntArrayMethodbb0 - allocAndInitIntArrayMethodbb0 -> allocAndInitIntArrayMethodx + "allocAndInitIntArrayMethodbb-1" -> "allocAndInitIntArrayMethodbb0" + "allocAndInitIntArrayMethodbb0" -> "allocAndInitIntArrayMethodbb-2" } diff --git a/test-output/allocAndInitObjectArrayMethod.dot b/test-output/allocAndInitObjectArrayMethod.dot index 2f14ed1..ad2168e 100644 --- a/test-output/allocAndInitObjectArrayMethod.dot +++ b/test-output/allocAndInitObjectArrayMethod.dot @@ -1,10 +1,10 @@ digraph allocAndInitObjectArrayMethod { node [shape=record] - allocAndInitObjectArrayMethode [shape=circle,label="e",xlabel="allocAndInitObjectArrayMethod"] - allocAndInitObjectArrayMethodx [shape=circle,label="x"] - allocAndInitObjectArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ANEWARRAY java/lang/Object|4: DUP |5: ICONST_0 |6: LDC 1|7: AASTORE |8: DUP |9: ICONST_1 |10: LDC 2|11: AASTORE |12: ARETURN }"] + "allocAndInitObjectArrayMethodbb-1" [shape=circle,label="e",xlabel="allocAndInitObjectArrayMethod"] + "allocAndInitObjectArrayMethodbb-2" [shape=circle,label="x"] + "allocAndInitObjectArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ANEWARRAY java/lang/Object|4: DUP |5: ICONST_0 |6: LDC 1|7: AASTORE |8: DUP |9: ICONST_1 |10: LDC 2|11: AASTORE |12: ARETURN }"] - allocAndInitObjectArrayMethode -> allocAndInitObjectArrayMethodbb0 - allocAndInitObjectArrayMethodbb0 -> allocAndInitObjectArrayMethodx + "allocAndInitObjectArrayMethodbb-1" -> "allocAndInitObjectArrayMethodbb0" + "allocAndInitObjectArrayMethodbb0" -> "allocAndInitObjectArrayMethodbb-2" } diff --git a/test-output/allocIncomplete2dArrayMethod.dot b/test-output/allocIncomplete2dArrayMethod.dot index d11621a..5e41532 100644 --- a/test-output/allocIncomplete2dArrayMethod.dot +++ b/test-output/allocIncomplete2dArrayMethod.dot @@ -1,10 +1,10 @@ digraph allocIncomplete2dArrayMethod { node [shape=record] - allocIncomplete2dArrayMethode [shape=circle,label="e",xlabel="allocIncomplete2dArrayMethod"] - allocIncomplete2dArrayMethodx [shape=circle,label="x"] - allocIncomplete2dArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ANEWARRAY [I|4: ARETURN }"] + "allocIncomplete2dArrayMethodbb-1" [shape=circle,label="e",xlabel="allocIncomplete2dArrayMethod"] + "allocIncomplete2dArrayMethodbb-2" [shape=circle,label="x"] + "allocIncomplete2dArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ANEWARRAY [I|4: ARETURN }"] - allocIncomplete2dArrayMethode -> allocIncomplete2dArrayMethodbb0 - allocIncomplete2dArrayMethodbb0 -> allocIncomplete2dArrayMethodx + "allocIncomplete2dArrayMethodbb-1" -> "allocIncomplete2dArrayMethodbb0" + "allocIncomplete2dArrayMethodbb0" -> "allocIncomplete2dArrayMethodbb-2" } diff --git a/test-output/allocIntArrayMethod.dot b/test-output/allocIntArrayMethod.dot index aa3a494..7b47fc6 100644 --- a/test-output/allocIntArrayMethod.dot +++ b/test-output/allocIntArrayMethod.dot @@ -1,10 +1,10 @@ digraph allocIntArrayMethod { node [shape=record] - allocIntArrayMethode [shape=circle,label="e",xlabel="allocIntArrayMethod"] - allocIntArrayMethodx [shape=circle,label="x"] - allocIntArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_3 |3: NEWARRAY T_INT|4: ARETURN }"] + "allocIntArrayMethodbb-1" [shape=circle,label="e",xlabel="allocIntArrayMethod"] + "allocIntArrayMethodbb-2" [shape=circle,label="x"] + "allocIntArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_3 |3: NEWARRAY T_INT|4: ARETURN }"] - allocIntArrayMethode -> allocIntArrayMethodbb0 - allocIntArrayMethodbb0 -> allocIntArrayMethodx + "allocIntArrayMethodbb-1" -> "allocIntArrayMethodbb0" + "allocIntArrayMethodbb0" -> "allocIntArrayMethodbb-2" } diff --git a/test-output/allocObjectArrayMethod.dot b/test-output/allocObjectArrayMethod.dot index 62973e7..5e0cccf 100644 --- a/test-output/allocObjectArrayMethod.dot +++ b/test-output/allocObjectArrayMethod.dot @@ -1,10 +1,10 @@ digraph allocObjectArrayMethod { node [shape=record] - allocObjectArrayMethode [shape=circle,label="e",xlabel="allocObjectArrayMethod"] - allocObjectArrayMethodx [shape=circle,label="x"] - allocObjectArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_3 |3: ANEWARRAY java/lang/Object|4: ARETURN }"] + "allocObjectArrayMethodbb-1" [shape=circle,label="e",xlabel="allocObjectArrayMethod"] + "allocObjectArrayMethodbb-2" [shape=circle,label="x"] + "allocObjectArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_3 |3: ANEWARRAY java/lang/Object|4: ARETURN }"] - allocObjectArrayMethode -> allocObjectArrayMethodbb0 - allocObjectArrayMethodbb0 -> allocObjectArrayMethodx + "allocObjectArrayMethodbb-1" -> "allocObjectArrayMethodbb0" + "allocObjectArrayMethodbb0" -> "allocObjectArrayMethodbb-2" } diff --git a/test-output/allocObjectMethod.dot b/test-output/allocObjectMethod.dot index 243f905..ef41508 100644 --- a/test-output/allocObjectMethod.dot +++ b/test-output/allocObjectMethod.dot @@ -1,10 +1,10 @@ digraph allocObjectMethod { node [shape=record] - allocObjectMethode [shape=circle,label="e",xlabel="allocObjectMethod"] - allocObjectMethodx [shape=circle,label="x"] - allocObjectMethodbb0 [label="0|{0: // label|1: // line number information|2: NEW java/lang/Object|3: DUP |4: INVOKESPECIAL java/lang/Object. ()V|5: ARETURN }"] + "allocObjectMethodbb-1" [shape=circle,label="e",xlabel="allocObjectMethod"] + "allocObjectMethodbb-2" [shape=circle,label="x"] + "allocObjectMethodbb0" [label="0|{0: // label|1: // line number information|2: NEW java/lang/Object|3: DUP |4: INVOKESPECIAL java/lang/Object. ()V|5: ARETURN }"] - allocObjectMethode -> allocObjectMethodbb0 - allocObjectMethodbb0 -> allocObjectMethodx + "allocObjectMethodbb-1" -> "allocObjectMethodbb0" + "allocObjectMethodbb0" -> "allocObjectMethodbb-2" } diff --git a/test-output/arrayLengthMethod.dot b/test-output/arrayLengthMethod.dot index 0894f77..d06a7bf 100644 --- a/test-output/arrayLengthMethod.dot +++ b/test-output/arrayLengthMethod.dot @@ -1,10 +1,10 @@ digraph arrayLengthMethod { node [shape=record] - arrayLengthMethode [shape=circle,label="e",xlabel="arrayLengthMethod"] - arrayLengthMethodx [shape=circle,label="x"] - arrayLengthMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ARRAYLENGTH |4: IRETURN }"] + "arrayLengthMethodbb-1" [shape=circle,label="e",xlabel="arrayLengthMethod"] + "arrayLengthMethodbb-2" [shape=circle,label="x"] + "arrayLengthMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ARRAYLENGTH |4: IRETURN }"] - arrayLengthMethode -> arrayLengthMethodbb0 - arrayLengthMethodbb0 -> arrayLengthMethodx + "arrayLengthMethodbb-1" -> "arrayLengthMethodbb0" + "arrayLengthMethodbb0" -> "arrayLengthMethodbb-2" } diff --git a/test-output/arrayReadMethod.dot b/test-output/arrayReadMethod.dot index 9f00262..7ca4ab0 100644 --- a/test-output/arrayReadMethod.dot +++ b/test-output/arrayReadMethod.dot @@ -1,10 +1,10 @@ digraph arrayReadMethod { node [shape=record] - arrayReadMethode [shape=circle,label="e",xlabel="arrayReadMethod"] - arrayReadMethodx [shape=circle,label="x"] - arrayReadMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ICONST_0 |4: AALOAD |5: ARETURN }"] + "arrayReadMethodbb-1" [shape=circle,label="e",xlabel="arrayReadMethod"] + "arrayReadMethodbb-2" [shape=circle,label="x"] + "arrayReadMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ICONST_0 |4: AALOAD |5: ARETURN }"] - arrayReadMethode -> arrayReadMethodbb0 - arrayReadMethodbb0 -> arrayReadMethodx + "arrayReadMethodbb-1" -> "arrayReadMethodbb0" + "arrayReadMethodbb0" -> "arrayReadMethodbb-2" } diff --git a/test-output/arrayWriteMethod.dot b/test-output/arrayWriteMethod.dot index 7300308..cfc03b3 100644 --- a/test-output/arrayWriteMethod.dot +++ b/test-output/arrayWriteMethod.dot @@ -1,10 +1,10 @@ digraph arrayWriteMethod { node [shape=record] - arrayWriteMethode [shape=circle,label="e",xlabel="arrayWriteMethod"] - arrayWriteMethodx [shape=circle,label="x"] - arrayWriteMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ICONST_0 |4: ALOAD 2|5: AASTORE |6: // label|7: // line number information|8: RETURN }"] + "arrayWriteMethodbb-1" [shape=circle,label="e",xlabel="arrayWriteMethod"] + "arrayWriteMethodbb-2" [shape=circle,label="x"] + "arrayWriteMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ICONST_0 |4: ALOAD 2|5: AASTORE |6: // label|7: // line number information|8: RETURN }"] - arrayWriteMethode -> arrayWriteMethodbb0 - arrayWriteMethodbb0 -> arrayWriteMethodx + "arrayWriteMethodbb-1" -> "arrayWriteMethodbb0" + "arrayWriteMethodbb0" -> "arrayWriteMethodbb-2" } diff --git a/test-output/condMethod.dot b/test-output/condMethod.dot index 7930be2..6c7c15c 100644 --- a/test-output/condMethod.dot +++ b/test-output/condMethod.dot @@ -1,17 +1,17 @@ digraph condMethod { node [shape=record] - condMethode [shape=circle,label="e",xlabel="condMethod"] - condMethodx [shape=circle,label="x"] - condMethodbb0 [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 7}"] - condMethodbb5 [label="5|{5: ILOAD 1|6: GOTO 10}"] - condMethodbb7 [label="7|{7: // label|8: // stack frame map|9: ILOAD 2}"] - condMethodbb10 [label="10|{10: // label|11: // stack frame map|12: IRETURN }"] + "condMethodbb-1" [shape=circle,label="e",xlabel="condMethod"] + "condMethodbb-2" [shape=circle,label="x"] + "condMethodbb0" [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 7}"] + "condMethodbb5" [label="5|{5: ILOAD 1|6: GOTO 10}"] + "condMethodbb7" [label="7|{7: // label|8: // stack frame map|9: ILOAD 2}"] + "condMethodbb10" [label="10|{10: // label|11: // stack frame map|12: IRETURN }"] - condMethode -> condMethodbb0 - condMethodbb0 -> condMethodbb5 - condMethodbb7 -> condMethodbb10 - condMethodbb10 -> condMethodx - condMethodbb0 -> condMethodbb7 [label="T"] - condMethodbb5 -> condMethodbb10 [label="T"] + "condMethodbb-1" -> "condMethodbb0" + "condMethodbb0" -> "condMethodbb5" + "condMethodbb7" -> "condMethodbb10" + "condMethodbb10" -> "condMethodbb-2" + "condMethodbb0" -> "condMethodbb7" [label="T"] + "condMethodbb5" -> "condMethodbb10" [label="T"] } diff --git a/test-output/doWhileMethod.dot b/test-output/doWhileMethod.dot index 02e6115..142634e 100644 --- a/test-output/doWhileMethod.dot +++ b/test-output/doWhileMethod.dot @@ -1,15 +1,15 @@ digraph doWhileMethod { node [shape=record] - doWhileMethode [shape=circle,label="e",xlabel="doWhileMethod"] - doWhileMethodx [shape=circle,label="x"] - doWhileMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"] - doWhileMethodbb4 [label="4|{4: // label|5: // line number information|6: // stack frame map|7: ILOAD 2|8: ILOAD 1|9: IADD |10: ISTORE 2|11: // label|12: // line number information|13: IINC 1 -1|14: // label|15: // line number information|16: ILOAD 1|17: IFGT 4}"] - doWhileMethodbb18 [label="18|{18: // label|19: // line number information|20: ILOAD 2|21: IRETURN }"] + "doWhileMethodbb-1" [shape=circle,label="e",xlabel="doWhileMethod"] + "doWhileMethodbb-2" [shape=circle,label="x"] + "doWhileMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"] + "doWhileMethodbb4" [label="4|{4: // label|5: // line number information|6: // stack frame map|7: ILOAD 2|8: ILOAD 1|9: IADD |10: ISTORE 2|11: // label|12: // line number information|13: IINC 1 -1|14: // label|15: // line number information|16: ILOAD 1|17: IFGT 4}"] + "doWhileMethodbb18" [label="18|{18: // label|19: // line number information|20: ILOAD 2|21: IRETURN }"] - doWhileMethode -> doWhileMethodbb0 - doWhileMethodbb0 -> doWhileMethodbb4 - doWhileMethodbb4 -> doWhileMethodbb18 - doWhileMethodbb18 -> doWhileMethodx - doWhileMethodbb4 -> doWhileMethodbb4 [label="T"] + "doWhileMethodbb-1" -> "doWhileMethodbb0" + "doWhileMethodbb0" -> "doWhileMethodbb4" + "doWhileMethodbb4" -> "doWhileMethodbb18" + "doWhileMethodbb18" -> "doWhileMethodbb-2" + "doWhileMethodbb4" -> "doWhileMethodbb4" [label="T"] } diff --git a/test-output/doWhileTrue.dot b/test-output/doWhileTrue.dot index e79e266..9f85345 100644 --- a/test-output/doWhileTrue.dot +++ b/test-output/doWhileTrue.dot @@ -1,10 +1,10 @@ digraph doWhileTrue { node [shape=record] - doWhileTruee [shape=circle,label="e",xlabel="doWhileTrue"] - doWhileTruee [shape=circle,label="e",xlabel="doWhileTrue"] - doWhileTruebb0 [label="0|{0: // label|1: // line number information|2: // stack frame map|3: IINC 1 1|4: // label|5: // line number information|6: GOTO 0}"] + "doWhileTruebb-1" [shape=circle,label="e",xlabel="doWhileTrue"] + "doWhileTruebb-2" [shape=circle,label="e",xlabel="doWhileTrue"] + "doWhileTruebb0" [label="0|{0: // label|1: // line number information|2: // stack frame map|3: IINC 1 1|4: // label|5: // line number information|6: GOTO 0}"] - doWhileTruee -> doWhileTruebb0 - doWhileTruebb0 -> doWhileTruebb0 [label="T"] + "doWhileTruebb-1" -> "doWhileTruebb0" + "doWhileTruebb0" -> "doWhileTruebb0" [label="T"] } diff --git a/test-output/emptyMethod.dot b/test-output/emptyMethod.dot index f8d96fa..2403d46 100644 --- a/test-output/emptyMethod.dot +++ b/test-output/emptyMethod.dot @@ -1,10 +1,10 @@ digraph emptyMethod { node [shape=record] - emptyMethode [shape=circle,label="e",xlabel="emptyMethod"] - emptyMethodx [shape=circle,label="x"] - emptyMethodbb0 [label="0|{0: // label|1: // line number information|2: RETURN }"] + "emptyMethodbb-1" [shape=circle,label="e",xlabel="emptyMethod"] + "emptyMethodbb-2" [shape=circle,label="x"] + "emptyMethodbb0" [label="0|{0: // label|1: // line number information|2: RETURN }"] - emptyMethode -> emptyMethodbb0 - emptyMethodbb0 -> emptyMethodx + "emptyMethodbb-1" -> "emptyMethodbb0" + "emptyMethodbb0" -> "emptyMethodbb-2" } diff --git a/test-output/fieldReadMethod.dot b/test-output/fieldReadMethod.dot index 1fa6d66..3f5c7e3 100644 --- a/test-output/fieldReadMethod.dot +++ b/test-output/fieldReadMethod.dot @@ -1,10 +1,10 @@ digraph fieldReadMethod { node [shape=record] - fieldReadMethode [shape=circle,label="e",xlabel="fieldReadMethod"] - fieldReadMethodx [shape=circle,label="x"] - fieldReadMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: GETFIELD ExampleClass.field Ljava/lang/String;|4: ARETURN }"] + "fieldReadMethodbb-1" [shape=circle,label="e",xlabel="fieldReadMethod"] + "fieldReadMethodbb-2" [shape=circle,label="x"] + "fieldReadMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: GETFIELD ExampleClass.field Ljava/lang/String;|4: ARETURN }"] - fieldReadMethode -> fieldReadMethodbb0 - fieldReadMethodbb0 -> fieldReadMethodx + "fieldReadMethodbb-1" -> "fieldReadMethodbb0" + "fieldReadMethodbb0" -> "fieldReadMethodbb-2" } diff --git a/test-output/fieldWriteMethod.dot b/test-output/fieldWriteMethod.dot index d49f1c1..825e37f 100644 --- a/test-output/fieldWriteMethod.dot +++ b/test-output/fieldWriteMethod.dot @@ -1,10 +1,10 @@ digraph fieldWriteMethod { node [shape=record] - fieldWriteMethode [shape=circle,label="e",xlabel="fieldWriteMethod"] - fieldWriteMethodx [shape=circle,label="x"] - fieldWriteMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: ALOAD 1|4: PUTFIELD ExampleClass.field Ljava/lang/String;|5: // label|6: // line number information|7: RETURN }"] + "fieldWriteMethodbb-1" [shape=circle,label="e",xlabel="fieldWriteMethod"] + "fieldWriteMethodbb-2" [shape=circle,label="x"] + "fieldWriteMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: ALOAD 1|4: PUTFIELD ExampleClass.field Ljava/lang/String;|5: // label|6: // line number information|7: RETURN }"] - fieldWriteMethode -> fieldWriteMethodbb0 - fieldWriteMethodbb0 -> fieldWriteMethodx + "fieldWriteMethodbb-1" -> "fieldWriteMethodbb0" + "fieldWriteMethodbb0" -> "fieldWriteMethodbb-2" } diff --git a/test-output/forEachArrayMethod.dot b/test-output/forEachArrayMethod.dot index edb06ea..585e66e 100644 --- a/test-output/forEachArrayMethod.dot +++ b/test-output/forEachArrayMethod.dot @@ -1,17 +1,17 @@ digraph forEachArrayMethod { node [shape=record] - forEachArrayMethode [shape=circle,label="e",xlabel="forEachArrayMethod"] - forEachArrayMethodx [shape=circle,label="x"] - forEachArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ALOAD 1|7: ASTORE 3|8: ALOAD 3|9: ARRAYLENGTH |10: ISTORE 4|11: ICONST_0 |12: ISTORE 5}"] - forEachArrayMethodbb13 [label="13|{13: // label|14: // stack frame map|15: ILOAD 5|16: ILOAD 4|17: IF_ICMPGE 29}"] - forEachArrayMethodbb18 [label="18|{18: ALOAD 3|19: ILOAD 5|20: AALOAD |21: ASTORE 6|22: // label|23: // line number information|24: IINC 2 1|25: // label|26: // line number information|27: IINC 5 1|28: GOTO 13}"] - forEachArrayMethodbb29 [label="29|{29: // label|30: // line number information|31: // stack frame map|32: ILOAD 2|33: IRETURN }"] + "forEachArrayMethodbb-1" [shape=circle,label="e",xlabel="forEachArrayMethod"] + "forEachArrayMethodbb-2" [shape=circle,label="x"] + "forEachArrayMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ALOAD 1|7: ASTORE 3|8: ALOAD 3|9: ARRAYLENGTH |10: ISTORE 4|11: ICONST_0 |12: ISTORE 5}"] + "forEachArrayMethodbb13" [label="13|{13: // label|14: // stack frame map|15: ILOAD 5|16: ILOAD 4|17: IF_ICMPGE 29}"] + "forEachArrayMethodbb18" [label="18|{18: ALOAD 3|19: ILOAD 5|20: AALOAD |21: ASTORE 6|22: // label|23: // line number information|24: IINC 2 1|25: // label|26: // line number information|27: IINC 5 1|28: GOTO 13}"] + "forEachArrayMethodbb29" [label="29|{29: // label|30: // line number information|31: // stack frame map|32: ILOAD 2|33: IRETURN }"] - forEachArrayMethode -> forEachArrayMethodbb0 - forEachArrayMethodbb0 -> forEachArrayMethodbb13 - forEachArrayMethodbb13 -> forEachArrayMethodbb18 - forEachArrayMethodbb29 -> forEachArrayMethodx - forEachArrayMethodbb18 -> forEachArrayMethodbb13 [label="T"] - forEachArrayMethodbb13 -> forEachArrayMethodbb29 [label="T"] + "forEachArrayMethodbb-1" -> "forEachArrayMethodbb0" + "forEachArrayMethodbb0" -> "forEachArrayMethodbb13" + "forEachArrayMethodbb13" -> "forEachArrayMethodbb18" + "forEachArrayMethodbb29" -> "forEachArrayMethodbb-2" + "forEachArrayMethodbb18" -> "forEachArrayMethodbb13" [label="T"] + "forEachArrayMethodbb13" -> "forEachArrayMethodbb29" [label="T"] } diff --git a/test-output/forEachCollectionMethod.dot b/test-output/forEachCollectionMethod.dot index 3a7fe32..7c47b46 100644 --- a/test-output/forEachCollectionMethod.dot +++ b/test-output/forEachCollectionMethod.dot @@ -1,17 +1,17 @@ digraph forEachCollectionMethod { node [shape=record] - forEachCollectionMethode [shape=circle,label="e",xlabel="forEachCollectionMethod"] - forEachCollectionMethodx [shape=circle,label="x"] - forEachCollectionMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ALOAD 1|7: INVOKEINTERFACE java/util/Set.iterator ()Ljava/util/Iterator;|8: ASTORE 3}"] - forEachCollectionMethodbb9 [label="9|{9: // label|10: // stack frame map|11: ALOAD 3|12: INVOKEINTERFACE java/util/Iterator.hasNext ()Z|13: IFEQ 24}"] - forEachCollectionMethodbb14 [label="14|{14: ALOAD 3|15: INVOKEINTERFACE java/util/Iterator.next ()Ljava/lang/Object;|16: CHECKCAST java/lang/String|17: ASTORE 4|18: // label|19: // line number information|20: IINC 2 1|21: // label|22: // line number information|23: GOTO 9}"] - forEachCollectionMethodbb24 [label="24|{24: // label|25: // line number information|26: // stack frame map|27: ILOAD 2|28: IRETURN }"] + "forEachCollectionMethodbb-1" [shape=circle,label="e",xlabel="forEachCollectionMethod"] + "forEachCollectionMethodbb-2" [shape=circle,label="x"] + "forEachCollectionMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ALOAD 1|7: INVOKEINTERFACE java/util/Set.iterator ()Ljava/util/Iterator;|8: ASTORE 3}"] + "forEachCollectionMethodbb9" [label="9|{9: // label|10: // stack frame map|11: ALOAD 3|12: INVOKEINTERFACE java/util/Iterator.hasNext ()Z|13: IFEQ 24}"] + "forEachCollectionMethodbb14" [label="14|{14: ALOAD 3|15: INVOKEINTERFACE java/util/Iterator.next ()Ljava/lang/Object;|16: CHECKCAST java/lang/String|17: ASTORE 4|18: // label|19: // line number information|20: IINC 2 1|21: // label|22: // line number information|23: GOTO 9}"] + "forEachCollectionMethodbb24" [label="24|{24: // label|25: // line number information|26: // stack frame map|27: ILOAD 2|28: IRETURN }"] - forEachCollectionMethode -> forEachCollectionMethodbb0 - forEachCollectionMethodbb0 -> forEachCollectionMethodbb9 - forEachCollectionMethodbb9 -> forEachCollectionMethodbb14 - forEachCollectionMethodbb24 -> forEachCollectionMethodx - forEachCollectionMethodbb14 -> forEachCollectionMethodbb9 [label="T"] - forEachCollectionMethodbb9 -> forEachCollectionMethodbb24 [label="T"] + "forEachCollectionMethodbb-1" -> "forEachCollectionMethodbb0" + "forEachCollectionMethodbb0" -> "forEachCollectionMethodbb9" + "forEachCollectionMethodbb9" -> "forEachCollectionMethodbb14" + "forEachCollectionMethodbb24" -> "forEachCollectionMethodbb-2" + "forEachCollectionMethodbb14" -> "forEachCollectionMethodbb9" [label="T"] + "forEachCollectionMethodbb9" -> "forEachCollectionMethodbb24" [label="T"] } diff --git a/test-output/forEver.dot b/test-output/forEver.dot index 0ab7877..03a00c4 100644 --- a/test-output/forEver.dot +++ b/test-output/forEver.dot @@ -1,12 +1,12 @@ digraph forEver { node [shape=record] - forEvere [shape=circle,label="e",xlabel="forEver"] - forEvere [shape=circle,label="e",xlabel="forEver"] - forEverbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"] - forEverbb4 [label="4|{4: // label|5: // stack frame map|6: IINC 2 1|7: GOTO 4}"] + "forEverbb-1" [shape=circle,label="e",xlabel="forEver"] + "forEverbb-2" [shape=circle,label="e",xlabel="forEver"] + "forEverbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"] + "forEverbb4" [label="4|{4: // label|5: // stack frame map|6: IINC 2 1|7: GOTO 4}"] - forEvere -> forEverbb0 - forEverbb0 -> forEverbb4 - forEverbb4 -> forEverbb4 [label="T"] + "forEverbb-1" -> "forEverbb0" + "forEverbb0" -> "forEverbb4" + "forEverbb4" -> "forEverbb4" [label="T"] } diff --git a/test-output/forMethod.dot b/test-output/forMethod.dot index 9e62177..e297cc2 100644 --- a/test-output/forMethod.dot +++ b/test-output/forMethod.dot @@ -1,17 +1,17 @@ digraph forMethod { node [shape=record] - forMethode [shape=circle,label="e",xlabel="forMethod"] - forMethodx [shape=circle,label="x"] - forMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] - forMethodbb8 [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 23}"] - forMethodbb13 [label="13|{13: // label|14: // line number information|15: ILOAD 2|16: ILOAD 3|17: IADD |18: ISTORE 2|19: // label|20: // line number information|21: IINC 1 1|22: GOTO 8}"] - forMethodbb23 [label="23|{23: // label|24: // line number information|25: // stack frame map|26: ILOAD 2|27: IRETURN }"] + "forMethodbb-1" [shape=circle,label="e",xlabel="forMethod"] + "forMethodbb-2" [shape=circle,label="x"] + "forMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] + "forMethodbb8" [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 23}"] + "forMethodbb13" [label="13|{13: // label|14: // line number information|15: ILOAD 2|16: ILOAD 3|17: IADD |18: ISTORE 2|19: // label|20: // line number information|21: IINC 1 1|22: GOTO 8}"] + "forMethodbb23" [label="23|{23: // label|24: // line number information|25: // stack frame map|26: ILOAD 2|27: IRETURN }"] - forMethode -> forMethodbb0 - forMethodbb0 -> forMethodbb8 - forMethodbb8 -> forMethodbb13 - forMethodbb23 -> forMethodx - forMethodbb13 -> forMethodbb8 [label="T"] - forMethodbb8 -> forMethodbb23 [label="T"] + "forMethodbb-1" -> "forMethodbb0" + "forMethodbb0" -> "forMethodbb8" + "forMethodbb8" -> "forMethodbb13" + "forMethodbb23" -> "forMethodbb-2" + "forMethodbb13" -> "forMethodbb8" [label="T"] + "forMethodbb8" -> "forMethodbb23" [label="T"] } diff --git a/test-output/forWithBreakMethod.dot b/test-output/forWithBreakMethod.dot index a0850c0..c67a277 100644 --- a/test-output/forWithBreakMethod.dot +++ b/test-output/forWithBreakMethod.dot @@ -1,22 +1,22 @@ digraph forWithBreakMethod { node [shape=record] - forWithBreakMethode [shape=circle,label="e",xlabel="forWithBreakMethod"] - forWithBreakMethodx [shape=circle,label="x"] - forWithBreakMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] - forWithBreakMethodbb8 [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 32}"] - forWithBreakMethodbb13 [label="13|{13: // label|14: // line number information|15: ILOAD 3|16: BIPUSH 10|17: IF_ICMPNE 21}"] - forWithBreakMethodbb18 [label="18|{18: // label|19: // line number information|20: GOTO 32}"] - forWithBreakMethodbb21 [label="21|{21: // label|22: // line number information|23: // stack frame map|24: ILOAD 2|25: ILOAD 3|26: IADD |27: ISTORE 2|28: // label|29: // line number information|30: IINC 3 1|31: GOTO 8}"] - forWithBreakMethodbb32 [label="32|{32: // label|33: // line number information|34: // stack frame map|35: ILOAD 2|36: IRETURN }"] + "forWithBreakMethodbb-1" [shape=circle,label="e",xlabel="forWithBreakMethod"] + "forWithBreakMethodbb-2" [shape=circle,label="x"] + "forWithBreakMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] + "forWithBreakMethodbb8" [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 32}"] + "forWithBreakMethodbb13" [label="13|{13: // label|14: // line number information|15: ILOAD 3|16: BIPUSH 10|17: IF_ICMPNE 21}"] + "forWithBreakMethodbb18" [label="18|{18: // label|19: // line number information|20: GOTO 32}"] + "forWithBreakMethodbb21" [label="21|{21: // label|22: // line number information|23: // stack frame map|24: ILOAD 2|25: ILOAD 3|26: IADD |27: ISTORE 2|28: // label|29: // line number information|30: IINC 3 1|31: GOTO 8}"] + "forWithBreakMethodbb32" [label="32|{32: // label|33: // line number information|34: // stack frame map|35: ILOAD 2|36: IRETURN }"] - forWithBreakMethode -> forWithBreakMethodbb0 - forWithBreakMethodbb0 -> forWithBreakMethodbb8 - forWithBreakMethodbb8 -> forWithBreakMethodbb13 - forWithBreakMethodbb13 -> forWithBreakMethodbb18 - forWithBreakMethodbb32 -> forWithBreakMethodx - forWithBreakMethodbb21 -> forWithBreakMethodbb8 [label="T"] - forWithBreakMethodbb13 -> forWithBreakMethodbb21 [label="T"] - forWithBreakMethodbb8 -> forWithBreakMethodbb32 [label="T"] - forWithBreakMethodbb18 -> forWithBreakMethodbb32 [label="T"] + "forWithBreakMethodbb-1" -> "forWithBreakMethodbb0" + "forWithBreakMethodbb0" -> "forWithBreakMethodbb8" + "forWithBreakMethodbb8" -> "forWithBreakMethodbb13" + "forWithBreakMethodbb13" -> "forWithBreakMethodbb18" + "forWithBreakMethodbb32" -> "forWithBreakMethodbb-2" + "forWithBreakMethodbb21" -> "forWithBreakMethodbb8" [label="T"] + "forWithBreakMethodbb13" -> "forWithBreakMethodbb21" [label="T"] + "forWithBreakMethodbb8" -> "forWithBreakMethodbb32" [label="T"] + "forWithBreakMethodbb18" -> "forWithBreakMethodbb32" [label="T"] } diff --git a/test-output/forWithContinueMethod.dot b/test-output/forWithContinueMethod.dot index 2ae27be..5ceda39 100644 --- a/test-output/forWithContinueMethod.dot +++ b/test-output/forWithContinueMethod.dot @@ -1,24 +1,24 @@ digraph forWithContinueMethod { node [shape=record] - forWithContinueMethode [shape=circle,label="e",xlabel="forWithContinueMethod"] - forWithContinueMethodx [shape=circle,label="x"] - forWithContinueMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] - forWithContinueMethodbb8 [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 33}"] - forWithContinueMethodbb13 [label="13|{13: // label|14: // line number information|15: ILOAD 3|16: BIPUSH 10|17: IF_ICMPNE 21}"] - forWithContinueMethodbb18 [label="18|{18: // label|19: // line number information|20: GOTO 28}"] - forWithContinueMethodbb21 [label="21|{21: // label|22: // line number information|23: // stack frame map|24: ILOAD 2|25: ILOAD 3|26: IADD |27: ISTORE 2}"] - forWithContinueMethodbb28 [label="28|{28: // label|29: // line number information|30: // stack frame map|31: IINC 3 1|32: GOTO 8}"] - forWithContinueMethodbb33 [label="33|{33: // label|34: // line number information|35: // stack frame map|36: ILOAD 2|37: IRETURN }"] + "forWithContinueMethodbb-1" [shape=circle,label="e",xlabel="forWithContinueMethod"] + "forWithContinueMethodbb-2" [shape=circle,label="x"] + "forWithContinueMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] + "forWithContinueMethodbb8" [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 33}"] + "forWithContinueMethodbb13" [label="13|{13: // label|14: // line number information|15: ILOAD 3|16: BIPUSH 10|17: IF_ICMPNE 21}"] + "forWithContinueMethodbb18" [label="18|{18: // label|19: // line number information|20: GOTO 28}"] + "forWithContinueMethodbb21" [label="21|{21: // label|22: // line number information|23: // stack frame map|24: ILOAD 2|25: ILOAD 3|26: IADD |27: ISTORE 2}"] + "forWithContinueMethodbb28" [label="28|{28: // label|29: // line number information|30: // stack frame map|31: IINC 3 1|32: GOTO 8}"] + "forWithContinueMethodbb33" [label="33|{33: // label|34: // line number information|35: // stack frame map|36: ILOAD 2|37: IRETURN }"] - forWithContinueMethode -> forWithContinueMethodbb0 - forWithContinueMethodbb0 -> forWithContinueMethodbb8 - forWithContinueMethodbb8 -> forWithContinueMethodbb13 - forWithContinueMethodbb13 -> forWithContinueMethodbb18 - forWithContinueMethodbb21 -> forWithContinueMethodbb28 - forWithContinueMethodbb33 -> forWithContinueMethodx - forWithContinueMethodbb28 -> forWithContinueMethodbb8 [label="T"] - forWithContinueMethodbb13 -> forWithContinueMethodbb21 [label="T"] - forWithContinueMethodbb18 -> forWithContinueMethodbb28 [label="T"] - forWithContinueMethodbb8 -> forWithContinueMethodbb33 [label="T"] + "forWithContinueMethodbb-1" -> "forWithContinueMethodbb0" + "forWithContinueMethodbb0" -> "forWithContinueMethodbb8" + "forWithContinueMethodbb8" -> "forWithContinueMethodbb13" + "forWithContinueMethodbb13" -> "forWithContinueMethodbb18" + "forWithContinueMethodbb21" -> "forWithContinueMethodbb28" + "forWithContinueMethodbb33" -> "forWithContinueMethodbb-2" + "forWithContinueMethodbb28" -> "forWithContinueMethodbb8" [label="T"] + "forWithContinueMethodbb13" -> "forWithContinueMethodbb21" [label="T"] + "forWithContinueMethodbb18" -> "forWithContinueMethodbb28" [label="T"] + "forWithContinueMethodbb8" -> "forWithContinueMethodbb33" [label="T"] } diff --git a/test-output/ifElseMethod.dot b/test-output/ifElseMethod.dot index f30eb28..190e71c 100644 --- a/test-output/ifElseMethod.dot +++ b/test-output/ifElseMethod.dot @@ -1,17 +1,17 @@ digraph ifElseMethod { node [shape=record] - ifElseMethode [shape=circle,label="e",xlabel="ifElseMethod"] - ifElseMethodx [shape=circle,label="x"] - ifElseMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: IFLE 13}"] - ifElseMethodbb8 [label="8|{8: // label|9: // line number information|10: ICONST_0 |11: ISTORE 2|12: GOTO 18}"] - ifElseMethodbb13 [label="13|{13: // label|14: // line number information|15: // stack frame map|16: ILOAD 1|17: ISTORE 2}"] - ifElseMethodbb18 [label="18|{18: // label|19: // line number information|20: // stack frame map|21: ILOAD 2|22: IRETURN }"] + "ifElseMethodbb-1" [shape=circle,label="e",xlabel="ifElseMethod"] + "ifElseMethodbb-2" [shape=circle,label="x"] + "ifElseMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: IFLE 13}"] + "ifElseMethodbb8" [label="8|{8: // label|9: // line number information|10: ICONST_0 |11: ISTORE 2|12: GOTO 18}"] + "ifElseMethodbb13" [label="13|{13: // label|14: // line number information|15: // stack frame map|16: ILOAD 1|17: ISTORE 2}"] + "ifElseMethodbb18" [label="18|{18: // label|19: // line number information|20: // stack frame map|21: ILOAD 2|22: IRETURN }"] - ifElseMethode -> ifElseMethodbb0 - ifElseMethodbb0 -> ifElseMethodbb8 - ifElseMethodbb13 -> ifElseMethodbb18 - ifElseMethodbb18 -> ifElseMethodx - ifElseMethodbb0 -> ifElseMethodbb13 [label="T"] - ifElseMethodbb8 -> ifElseMethodbb18 [label="T"] + "ifElseMethodbb-1" -> "ifElseMethodbb0" + "ifElseMethodbb0" -> "ifElseMethodbb8" + "ifElseMethodbb13" -> "ifElseMethodbb18" + "ifElseMethodbb18" -> "ifElseMethodbb-2" + "ifElseMethodbb0" -> "ifElseMethodbb13" [label="T"] + "ifElseMethodbb8" -> "ifElseMethodbb18" [label="T"] } diff --git a/test-output/ifMethod.dot b/test-output/ifMethod.dot index da5c603..66ac008 100644 --- a/test-output/ifMethod.dot +++ b/test-output/ifMethod.dot @@ -1,15 +1,15 @@ digraph ifMethod { node [shape=record] - ifMethode [shape=circle,label="e",xlabel="ifMethod"] - ifMethodx [shape=circle,label="x"] - ifMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: IFGE 12}"] - ifMethodbb8 [label="8|{8: // label|9: // line number information|10: ICONST_1 |11: ISTORE 2}"] - ifMethodbb12 [label="12|{12: // label|13: // line number information|14: // stack frame map|15: ILOAD 2|16: IRETURN }"] + "ifMethodbb-1" [shape=circle,label="e",xlabel="ifMethod"] + "ifMethodbb-2" [shape=circle,label="x"] + "ifMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: IFGE 12}"] + "ifMethodbb8" [label="8|{8: // label|9: // line number information|10: ICONST_1 |11: ISTORE 2}"] + "ifMethodbb12" [label="12|{12: // label|13: // line number information|14: // stack frame map|15: ILOAD 2|16: IRETURN }"] - ifMethode -> ifMethodbb0 - ifMethodbb0 -> ifMethodbb8 - ifMethodbb8 -> ifMethodbb12 - ifMethodbb12 -> ifMethodx - ifMethodbb0 -> ifMethodbb12 [label="T"] + "ifMethodbb-1" -> "ifMethodbb0" + "ifMethodbb0" -> "ifMethodbb8" + "ifMethodbb8" -> "ifMethodbb12" + "ifMethodbb12" -> "ifMethodbb-2" + "ifMethodbb0" -> "ifMethodbb12" [label="T"] } diff --git a/test-output/instanceCallMethod.dot b/test-output/instanceCallMethod.dot index 9bc6122..840b3a1 100644 --- a/test-output/instanceCallMethod.dot +++ b/test-output/instanceCallMethod.dot @@ -1,10 +1,10 @@ digraph instanceCallMethod { node [shape=record] - instanceCallMethode [shape=circle,label="e",xlabel="instanceCallMethod"] - instanceCallMethodx [shape=circle,label="x"] - instanceCallMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKEVIRTUAL ExampleClass.instanceCallTarget ()V|4: // label|5: // line number information|6: ICONST_2 |7: IRETURN }"] + "instanceCallMethodbb-1" [shape=circle,label="e",xlabel="instanceCallMethod"] + "instanceCallMethodbb-2" [shape=circle,label="x"] + "instanceCallMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKEVIRTUAL ExampleClass.instanceCallTarget ()V|4: // label|5: // line number information|6: ICONST_2 |7: IRETURN }"] - instanceCallMethode -> instanceCallMethodbb0 - instanceCallMethodbb0 -> instanceCallMethodx + "instanceCallMethodbb-1" -> "instanceCallMethodbb0" + "instanceCallMethodbb0" -> "instanceCallMethodbb-2" } diff --git a/test-output/instanceCallTarget.dot b/test-output/instanceCallTarget.dot index 69ed940..29ade3a 100644 --- a/test-output/instanceCallTarget.dot +++ b/test-output/instanceCallTarget.dot @@ -1,10 +1,10 @@ digraph instanceCallTarget { node [shape=record] - instanceCallTargete [shape=circle,label="e",xlabel="instanceCallTarget"] - instanceCallTargetx [shape=circle,label="x"] - instanceCallTargetbb0 [label="0|{0: // label|1: // line number information|2: RETURN }"] + "instanceCallTargetbb-1" [shape=circle,label="e",xlabel="instanceCallTarget"] + "instanceCallTargetbb-2" [shape=circle,label="x"] + "instanceCallTargetbb0" [label="0|{0: // label|1: // line number information|2: RETURN }"] - instanceCallTargete -> instanceCallTargetbb0 - instanceCallTargetbb0 -> instanceCallTargetx + "instanceCallTargetbb-1" -> "instanceCallTargetbb0" + "instanceCallTargetbb0" -> "instanceCallTargetbb-2" } diff --git a/test-output/interfaceCallMethod.dot b/test-output/interfaceCallMethod.dot index 6a57693..b488799 100644 --- a/test-output/interfaceCallMethod.dot +++ b/test-output/interfaceCallMethod.dot @@ -1,10 +1,10 @@ digraph interfaceCallMethod { node [shape=record] - interfaceCallMethode [shape=circle,label="e",xlabel="interfaceCallMethod"] - interfaceCallMethodx [shape=circle,label="x"] - interfaceCallMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKEINTERFACE ExampleClass$Interface.interfaceCallTarget ()V|4: // label|5: // line number information|6: ICONST_2 |7: IRETURN }"] + "interfaceCallMethodbb-1" [shape=circle,label="e",xlabel="interfaceCallMethod"] + "interfaceCallMethodbb-2" [shape=circle,label="x"] + "interfaceCallMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKEINTERFACE ExampleClass$Interface.interfaceCallTarget ()V|4: // label|5: // line number information|6: ICONST_2 |7: IRETURN }"] - interfaceCallMethode -> interfaceCallMethodbb0 - interfaceCallMethodbb0 -> interfaceCallMethodx + "interfaceCallMethodbb-1" -> "interfaceCallMethodbb0" + "interfaceCallMethodbb0" -> "interfaceCallMethodbb-2" } diff --git a/test-output/nestedFor.dot b/test-output/nestedFor.dot index 56071ee..7c70285 100644 --- a/test-output/nestedFor.dot +++ b/test-output/nestedFor.dot @@ -1,24 +1,24 @@ digraph nestedFor { node [shape=record] - nestedFore [shape=circle,label="e",xlabel="nestedFor"] - nestedForx [shape=circle,label="x"] - nestedForbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] - nestedForbb8 [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 37}"] - nestedForbb13 [label="13|{13: // label|14: // line number information|15: ICONST_0 |16: ISTORE 4}"] - nestedForbb17 [label="17|{17: // label|18: // stack frame map|19: ILOAD 4|20: ILOAD 3|21: IF_ICMPGE 32}"] - nestedForbb22 [label="22|{22: // label|23: // line number information|24: ILOAD 2|25: ILOAD 4|26: IADD |27: ISTORE 2|28: // label|29: // line number information|30: IINC 4 1|31: GOTO 17}"] - nestedForbb32 [label="32|{32: // label|33: // line number information|34: // stack frame map|35: IINC 3 1|36: GOTO 8}"] - nestedForbb37 [label="37|{37: // label|38: // line number information|39: // stack frame map|40: ILOAD 2|41: IRETURN }"] + "nestedForbb-1" [shape=circle,label="e",xlabel="nestedFor"] + "nestedForbb-2" [shape=circle,label="x"] + "nestedForbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |7: ISTORE 3}"] + "nestedForbb8" [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 37}"] + "nestedForbb13" [label="13|{13: // label|14: // line number information|15: ICONST_0 |16: ISTORE 4}"] + "nestedForbb17" [label="17|{17: // label|18: // stack frame map|19: ILOAD 4|20: ILOAD 3|21: IF_ICMPGE 32}"] + "nestedForbb22" [label="22|{22: // label|23: // line number information|24: ILOAD 2|25: ILOAD 4|26: IADD |27: ISTORE 2|28: // label|29: // line number information|30: IINC 4 1|31: GOTO 17}"] + "nestedForbb32" [label="32|{32: // label|33: // line number information|34: // stack frame map|35: IINC 3 1|36: GOTO 8}"] + "nestedForbb37" [label="37|{37: // label|38: // line number information|39: // stack frame map|40: ILOAD 2|41: IRETURN }"] - nestedFore -> nestedForbb0 - nestedForbb0 -> nestedForbb8 - nestedForbb8 -> nestedForbb13 - nestedForbb13 -> nestedForbb17 - nestedForbb17 -> nestedForbb22 - nestedForbb37 -> nestedForx - nestedForbb32 -> nestedForbb8 [label="T"] - nestedForbb22 -> nestedForbb17 [label="T"] - nestedForbb17 -> nestedForbb32 [label="T"] - nestedForbb8 -> nestedForbb37 [label="T"] + "nestedForbb-1" -> "nestedForbb0" + "nestedForbb0" -> "nestedForbb8" + "nestedForbb8" -> "nestedForbb13" + "nestedForbb13" -> "nestedForbb17" + "nestedForbb17" -> "nestedForbb22" + "nestedForbb37" -> "nestedForbb-2" + "nestedForbb32" -> "nestedForbb8" [label="T"] + "nestedForbb22" -> "nestedForbb17" [label="T"] + "nestedForbb17" -> "nestedForbb32" [label="T"] + "nestedForbb8" -> "nestedForbb37" [label="T"] } diff --git a/test-output/nonShortCircuitMethod.dot b/test-output/nonShortCircuitMethod.dot index 50963c8..d61827a 100644 --- a/test-output/nonShortCircuitMethod.dot +++ b/test-output/nonShortCircuitMethod.dot @@ -1,30 +1,30 @@ digraph nonShortCircuitMethod { node [shape=record] - nonShortCircuitMethode [shape=circle,label="e",xlabel="nonShortCircuitMethod"] - nonShortCircuitMethodx [shape=circle,label="x"] - nonShortCircuitMethodbb0 [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 7}"] - nonShortCircuitMethodbb5 [label="5|{5: ICONST_1 |6: GOTO 10}"] - nonShortCircuitMethodbb7 [label="7|{7: // label|8: // stack frame map|9: ICONST_0 }"] - nonShortCircuitMethodbb10 [label="10|{10: // label|11: // stack frame map|12: ILOAD 1|13: ILOAD 3|14: IF_ICMPGE 17}"] - nonShortCircuitMethodbb15 [label="15|{15: ICONST_1 |16: GOTO 20}"] - nonShortCircuitMethodbb17 [label="17|{17: // label|18: // stack frame map|19: ICONST_0 }"] - nonShortCircuitMethodbb20 [label="20|{20: // label|21: // stack frame map|22: IAND |23: IFEQ 28}"] - nonShortCircuitMethodbb24 [label="24|{24: // label|25: // line number information|26: ICONST_1 |27: IRETURN }"] - nonShortCircuitMethodbb28 [label="28|{28: // label|29: // line number information|30: // stack frame map|31: ICONST_0 |32: IRETURN }"] + "nonShortCircuitMethodbb-1" [shape=circle,label="e",xlabel="nonShortCircuitMethod"] + "nonShortCircuitMethodbb-2" [shape=circle,label="x"] + "nonShortCircuitMethodbb0" [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 7}"] + "nonShortCircuitMethodbb5" [label="5|{5: ICONST_1 |6: GOTO 10}"] + "nonShortCircuitMethodbb7" [label="7|{7: // label|8: // stack frame map|9: ICONST_0 }"] + "nonShortCircuitMethodbb10" [label="10|{10: // label|11: // stack frame map|12: ILOAD 1|13: ILOAD 3|14: IF_ICMPGE 17}"] + "nonShortCircuitMethodbb15" [label="15|{15: ICONST_1 |16: GOTO 20}"] + "nonShortCircuitMethodbb17" [label="17|{17: // label|18: // stack frame map|19: ICONST_0 }"] + "nonShortCircuitMethodbb20" [label="20|{20: // label|21: // stack frame map|22: IAND |23: IFEQ 28}"] + "nonShortCircuitMethodbb24" [label="24|{24: // label|25: // line number information|26: ICONST_1 |27: IRETURN }"] + "nonShortCircuitMethodbb28" [label="28|{28: // label|29: // line number information|30: // stack frame map|31: ICONST_0 |32: IRETURN }"] - nonShortCircuitMethode -> nonShortCircuitMethodbb0 - nonShortCircuitMethodbb0 -> nonShortCircuitMethodbb5 - nonShortCircuitMethodbb7 -> nonShortCircuitMethodbb10 - nonShortCircuitMethodbb10 -> nonShortCircuitMethodbb15 - nonShortCircuitMethodbb17 -> nonShortCircuitMethodbb20 - nonShortCircuitMethodbb20 -> nonShortCircuitMethodbb24 - nonShortCircuitMethodbb24 -> nonShortCircuitMethodx - nonShortCircuitMethodbb24 -> nonShortCircuitMethodbb28 - nonShortCircuitMethodbb28 -> nonShortCircuitMethodx - nonShortCircuitMethodbb0 -> nonShortCircuitMethodbb7 [label="T"] - nonShortCircuitMethodbb5 -> nonShortCircuitMethodbb10 [label="T"] - nonShortCircuitMethodbb10 -> nonShortCircuitMethodbb17 [label="T"] - nonShortCircuitMethodbb15 -> nonShortCircuitMethodbb20 [label="T"] - nonShortCircuitMethodbb20 -> nonShortCircuitMethodbb28 [label="T"] + "nonShortCircuitMethodbb-1" -> "nonShortCircuitMethodbb0" + "nonShortCircuitMethodbb0" -> "nonShortCircuitMethodbb5" + "nonShortCircuitMethodbb7" -> "nonShortCircuitMethodbb10" + "nonShortCircuitMethodbb10" -> "nonShortCircuitMethodbb15" + "nonShortCircuitMethodbb17" -> "nonShortCircuitMethodbb20" + "nonShortCircuitMethodbb20" -> "nonShortCircuitMethodbb24" + "nonShortCircuitMethodbb24" -> "nonShortCircuitMethodbb-2" + "nonShortCircuitMethodbb24" -> "nonShortCircuitMethodbb28" + "nonShortCircuitMethodbb28" -> "nonShortCircuitMethodbb-2" + "nonShortCircuitMethodbb0" -> "nonShortCircuitMethodbb7" [label="T"] + "nonShortCircuitMethodbb5" -> "nonShortCircuitMethodbb10" [label="T"] + "nonShortCircuitMethodbb10" -> "nonShortCircuitMethodbb17" [label="T"] + "nonShortCircuitMethodbb15" -> "nonShortCircuitMethodbb20" [label="T"] + "nonShortCircuitMethodbb20" -> "nonShortCircuitMethodbb28" [label="T"] } diff --git a/test-output/privateInstanceCallMethod.dot b/test-output/privateInstanceCallMethod.dot index 5361f83..c14d74e 100644 --- a/test-output/privateInstanceCallMethod.dot +++ b/test-output/privateInstanceCallMethod.dot @@ -1,10 +1,10 @@ digraph privateInstanceCallMethod { node [shape=record] - privateInstanceCallMethode [shape=circle,label="e",xlabel="privateInstanceCallMethod"] - privateInstanceCallMethodx [shape=circle,label="x"] - privateInstanceCallMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKESPECIAL ExampleClass.privateInstanceCallTarget ()V|4: // label|5: // line number information|6: ICONST_2 |7: IRETURN }"] + "privateInstanceCallMethodbb-1" [shape=circle,label="e",xlabel="privateInstanceCallMethod"] + "privateInstanceCallMethodbb-2" [shape=circle,label="x"] + "privateInstanceCallMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKESPECIAL ExampleClass.privateInstanceCallTarget ()V|4: // label|5: // line number information|6: ICONST_2 |7: IRETURN }"] - privateInstanceCallMethode -> privateInstanceCallMethodbb0 - privateInstanceCallMethodbb0 -> privateInstanceCallMethodx + "privateInstanceCallMethodbb-1" -> "privateInstanceCallMethodbb0" + "privateInstanceCallMethodbb0" -> "privateInstanceCallMethodbb-2" } diff --git a/test-output/privateInstanceCallTarget.dot b/test-output/privateInstanceCallTarget.dot index a4f766b..ce86815 100644 --- a/test-output/privateInstanceCallTarget.dot +++ b/test-output/privateInstanceCallTarget.dot @@ -1,10 +1,10 @@ digraph privateInstanceCallTarget { node [shape=record] - privateInstanceCallTargete [shape=circle,label="e",xlabel="privateInstanceCallTarget"] - privateInstanceCallTargetx [shape=circle,label="x"] - privateInstanceCallTargetbb0 [label="0|{0: // label|1: // line number information|2: RETURN }"] + "privateInstanceCallTargetbb-1" [shape=circle,label="e",xlabel="privateInstanceCallTarget"] + "privateInstanceCallTargetbb-2" [shape=circle,label="x"] + "privateInstanceCallTargetbb0" [label="0|{0: // label|1: // line number information|2: RETURN }"] - privateInstanceCallTargete -> privateInstanceCallTargetbb0 - privateInstanceCallTargetbb0 -> privateInstanceCallTargetx + "privateInstanceCallTargetbb-1" -> "privateInstanceCallTargetbb0" + "privateInstanceCallTargetbb0" -> "privateInstanceCallTargetbb-2" } diff --git a/test-output/shortCircuitMethod.dot b/test-output/shortCircuitMethod.dot index 5dea3b3..262f0fd 100644 --- a/test-output/shortCircuitMethod.dot +++ b/test-output/shortCircuitMethod.dot @@ -1,19 +1,19 @@ digraph shortCircuitMethod { node [shape=record] - shortCircuitMethode [shape=circle,label="e",xlabel="shortCircuitMethod"] - shortCircuitMethodx [shape=circle,label="x"] - shortCircuitMethodbb0 [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 12}"] - shortCircuitMethodbb5 [label="5|{5: ILOAD 1|6: ILOAD 3|7: IF_ICMPGE 12}"] - shortCircuitMethodbb8 [label="8|{8: // label|9: // line number information|10: ICONST_1 |11: IRETURN }"] - shortCircuitMethodbb12 [label="12|{12: // label|13: // line number information|14: // stack frame map|15: ICONST_0 |16: IRETURN }"] + "shortCircuitMethodbb-1" [shape=circle,label="e",xlabel="shortCircuitMethod"] + "shortCircuitMethodbb-2" [shape=circle,label="x"] + "shortCircuitMethodbb0" [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 12}"] + "shortCircuitMethodbb5" [label="5|{5: ILOAD 1|6: ILOAD 3|7: IF_ICMPGE 12}"] + "shortCircuitMethodbb8" [label="8|{8: // label|9: // line number information|10: ICONST_1 |11: IRETURN }"] + "shortCircuitMethodbb12" [label="12|{12: // label|13: // line number information|14: // stack frame map|15: ICONST_0 |16: IRETURN }"] - shortCircuitMethode -> shortCircuitMethodbb0 - shortCircuitMethodbb0 -> shortCircuitMethodbb5 - shortCircuitMethodbb5 -> shortCircuitMethodbb8 - shortCircuitMethodbb8 -> shortCircuitMethodx - shortCircuitMethodbb8 -> shortCircuitMethodbb12 - shortCircuitMethodbb12 -> shortCircuitMethodx - shortCircuitMethodbb0 -> shortCircuitMethodbb12 [label="T"] - shortCircuitMethodbb5 -> shortCircuitMethodbb12 [label="T"] + "shortCircuitMethodbb-1" -> "shortCircuitMethodbb0" + "shortCircuitMethodbb0" -> "shortCircuitMethodbb5" + "shortCircuitMethodbb5" -> "shortCircuitMethodbb8" + "shortCircuitMethodbb8" -> "shortCircuitMethodbb-2" + "shortCircuitMethodbb8" -> "shortCircuitMethodbb12" + "shortCircuitMethodbb12" -> "shortCircuitMethodbb-2" + "shortCircuitMethodbb0" -> "shortCircuitMethodbb12" [label="T"] + "shortCircuitMethodbb5" -> "shortCircuitMethodbb12" [label="T"] } diff --git a/test-output/staticCallMethod.dot b/test-output/staticCallMethod.dot index aa0072f..88128c9 100644 --- a/test-output/staticCallMethod.dot +++ b/test-output/staticCallMethod.dot @@ -1,10 +1,10 @@ digraph staticCallMethod { node [shape=record] - staticCallMethode [shape=circle,label="e",xlabel="staticCallMethod"] - staticCallMethodx [shape=circle,label="x"] - staticCallMethodbb0 [label="0|{0: // label|1: // line number information|2: INVOKESTATIC ExampleClass.staticCallTarget ()V|3: // label|4: // line number information|5: ICONST_2 |6: IRETURN }"] + "staticCallMethodbb-1" [shape=circle,label="e",xlabel="staticCallMethod"] + "staticCallMethodbb-2" [shape=circle,label="x"] + "staticCallMethodbb0" [label="0|{0: // label|1: // line number information|2: INVOKESTATIC ExampleClass.staticCallTarget ()V|3: // label|4: // line number information|5: ICONST_2 |6: IRETURN }"] - staticCallMethode -> staticCallMethodbb0 - staticCallMethodbb0 -> staticCallMethodx + "staticCallMethodbb-1" -> "staticCallMethodbb0" + "staticCallMethodbb0" -> "staticCallMethodbb-2" } diff --git a/test-output/staticCallTarget.dot b/test-output/staticCallTarget.dot index 2baf9ea..fc92b36 100644 --- a/test-output/staticCallTarget.dot +++ b/test-output/staticCallTarget.dot @@ -1,10 +1,10 @@ digraph staticCallTarget { node [shape=record] - staticCallTargete [shape=circle,label="e",xlabel="staticCallTarget"] - staticCallTargetx [shape=circle,label="x"] - staticCallTargetbb0 [label="0|{0: // label|1: // line number information|2: RETURN }"] + "staticCallTargetbb-1" [shape=circle,label="e",xlabel="staticCallTarget"] + "staticCallTargetbb-2" [shape=circle,label="x"] + "staticCallTargetbb0" [label="0|{0: // label|1: // line number information|2: RETURN }"] - staticCallTargete -> staticCallTargetbb0 - staticCallTargetbb0 -> staticCallTargetx + "staticCallTargetbb-1" -> "staticCallTargetbb0" + "staticCallTargetbb0" -> "staticCallTargetbb-2" } diff --git a/test-output/staticFieldReadMethod.dot b/test-output/staticFieldReadMethod.dot index a9cd408..c2ad464 100644 --- a/test-output/staticFieldReadMethod.dot +++ b/test-output/staticFieldReadMethod.dot @@ -1,10 +1,10 @@ digraph staticFieldReadMethod { node [shape=record] - staticFieldReadMethode [shape=circle,label="e",xlabel="staticFieldReadMethod"] - staticFieldReadMethodx [shape=circle,label="x"] - staticFieldReadMethodbb0 [label="0|{0: // label|1: // line number information|2: GETSTATIC ExampleClass.staticField Ljava/lang/String;|3: ARETURN }"] + "staticFieldReadMethodbb-1" [shape=circle,label="e",xlabel="staticFieldReadMethod"] + "staticFieldReadMethodbb-2" [shape=circle,label="x"] + "staticFieldReadMethodbb0" [label="0|{0: // label|1: // line number information|2: GETSTATIC ExampleClass.staticField Ljava/lang/String;|3: ARETURN }"] - staticFieldReadMethode -> staticFieldReadMethodbb0 - staticFieldReadMethodbb0 -> staticFieldReadMethodx + "staticFieldReadMethodbb-1" -> "staticFieldReadMethodbb0" + "staticFieldReadMethodbb0" -> "staticFieldReadMethodbb-2" } diff --git a/test-output/staticFieldWriteMethod.dot b/test-output/staticFieldWriteMethod.dot index 44e2ff9..4f5f825 100644 --- a/test-output/staticFieldWriteMethod.dot +++ b/test-output/staticFieldWriteMethod.dot @@ -1,10 +1,10 @@ digraph staticFieldWriteMethod { node [shape=record] - staticFieldWriteMethode [shape=circle,label="e",xlabel="staticFieldWriteMethod"] - staticFieldWriteMethodx [shape=circle,label="x"] - staticFieldWriteMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: PUTSTATIC ExampleClass.staticField Ljava/lang/String;|4: // label|5: // line number information|6: RETURN }"] + "staticFieldWriteMethodbb-1" [shape=circle,label="e",xlabel="staticFieldWriteMethod"] + "staticFieldWriteMethodbb-2" [shape=circle,label="x"] + "staticFieldWriteMethodbb0" [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: PUTSTATIC ExampleClass.staticField Ljava/lang/String;|4: // label|5: // line number information|6: RETURN }"] - staticFieldWriteMethode -> staticFieldWriteMethodbb0 - staticFieldWriteMethodbb0 -> staticFieldWriteMethodx + "staticFieldWriteMethodbb-1" -> "staticFieldWriteMethodbb0" + "staticFieldWriteMethodbb0" -> "staticFieldWriteMethodbb-2" } diff --git a/test-output/switchMethod.dot b/test-output/switchMethod.dot index ce8da9e..695ff2f 100644 --- a/test-output/switchMethod.dot +++ b/test-output/switchMethod.dot @@ -1,23 +1,23 @@ digraph switchMethod { node [shape=record] - switchMethode [shape=circle,label="e",xlabel="switchMethod"] - switchMethodx [shape=circle,label="x"] - switchMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: TABLESWITCH 0: 8, 1: 14, 2: 20, default: 26}"] - switchMethodbb8 [label="8|{8: // label|9: // line number information|10: // stack frame map|11: ICONST_0 |12: ISTORE 2|13: GOTO 31}"] - switchMethodbb14 [label="14|{14: // label|15: // line number information|16: // stack frame map|17: ICONST_1 |18: ISTORE 2|19: GOTO 31}"] - switchMethodbb20 [label="20|{20: // label|21: // line number information|22: // stack frame map|23: ICONST_2 |24: ISTORE 2|25: GOTO 31}"] - switchMethodbb26 [label="26|{26: // label|27: // line number information|28: // stack frame map|29: ICONST_M1 |30: ISTORE 2}"] - switchMethodbb31 [label="31|{31: // label|32: // line number information|33: // stack frame map|34: ILOAD 2|35: IRETURN }"] + "switchMethodbb-1" [shape=circle,label="e",xlabel="switchMethod"] + "switchMethodbb-2" [shape=circle,label="x"] + "switchMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: TABLESWITCH 0: 8, 1: 14, 2: 20, default: 26}"] + "switchMethodbb8" [label="8|{8: // label|9: // line number information|10: // stack frame map|11: ICONST_0 |12: ISTORE 2|13: GOTO 31}"] + "switchMethodbb14" [label="14|{14: // label|15: // line number information|16: // stack frame map|17: ICONST_1 |18: ISTORE 2|19: GOTO 31}"] + "switchMethodbb20" [label="20|{20: // label|21: // line number information|22: // stack frame map|23: ICONST_2 |24: ISTORE 2|25: GOTO 31}"] + "switchMethodbb26" [label="26|{26: // label|27: // line number information|28: // stack frame map|29: ICONST_M1 |30: ISTORE 2}"] + "switchMethodbb31" [label="31|{31: // label|32: // line number information|33: // stack frame map|34: ILOAD 2|35: IRETURN }"] - switchMethode -> switchMethodbb0 - switchMethodbb26 -> switchMethodbb31 - switchMethodbb31 -> switchMethodx - switchMethodbb0 -> switchMethodbb8 [label="0"] - switchMethodbb0 -> switchMethodbb14 [label="1"] - switchMethodbb0 -> switchMethodbb20 [label="2"] - switchMethodbb0 -> switchMethodbb26 [label="default"] - switchMethodbb8 -> switchMethodbb31 [label="T"] - switchMethodbb14 -> switchMethodbb31 [label="T"] - switchMethodbb20 -> switchMethodbb31 [label="T"] + "switchMethodbb-1" -> "switchMethodbb0" + "switchMethodbb26" -> "switchMethodbb31" + "switchMethodbb31" -> "switchMethodbb-2" + "switchMethodbb0" -> "switchMethodbb8" [label="0"] + "switchMethodbb0" -> "switchMethodbb14" [label="1"] + "switchMethodbb0" -> "switchMethodbb20" [label="2"] + "switchMethodbb0" -> "switchMethodbb26" [label="default"] + "switchMethodbb8" -> "switchMethodbb31" [label="T"] + "switchMethodbb14" -> "switchMethodbb31" [label="T"] + "switchMethodbb20" -> "switchMethodbb31" [label="T"] } diff --git a/test-output/switchMethod2.dot b/test-output/switchMethod2.dot index ee0bd85..ca3be64 100644 --- a/test-output/switchMethod2.dot +++ b/test-output/switchMethod2.dot @@ -1,23 +1,23 @@ digraph switchMethod2 { node [shape=record] - switchMethod2e [shape=circle,label="e",xlabel="switchMethod2"] - switchMethod2x [shape=circle,label="x"] - switchMethod2bb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: LOOKUPSWITCH 0: 8, 1000: 14, 2000: 20, default: 26}"] - switchMethod2bb8 [label="8|{8: // label|9: // line number information|10: // stack frame map|11: ICONST_0 |12: ISTORE 2|13: GOTO 31}"] - switchMethod2bb14 [label="14|{14: // label|15: // line number information|16: // stack frame map|17: ICONST_1 |18: ISTORE 2|19: GOTO 31}"] - switchMethod2bb20 [label="20|{20: // label|21: // line number information|22: // stack frame map|23: ICONST_2 |24: ISTORE 2|25: GOTO 31}"] - switchMethod2bb26 [label="26|{26: // label|27: // line number information|28: // stack frame map|29: ICONST_M1 |30: ISTORE 2}"] - switchMethod2bb31 [label="31|{31: // label|32: // line number information|33: // stack frame map|34: ILOAD 2|35: IRETURN }"] + "switchMethod2bb-1" [shape=circle,label="e",xlabel="switchMethod2"] + "switchMethod2bb-2" [shape=circle,label="x"] + "switchMethod2bb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: LOOKUPSWITCH 0: 8, 1000: 14, 2000: 20, default: 26}"] + "switchMethod2bb8" [label="8|{8: // label|9: // line number information|10: // stack frame map|11: ICONST_0 |12: ISTORE 2|13: GOTO 31}"] + "switchMethod2bb14" [label="14|{14: // label|15: // line number information|16: // stack frame map|17: ICONST_1 |18: ISTORE 2|19: GOTO 31}"] + "switchMethod2bb20" [label="20|{20: // label|21: // line number information|22: // stack frame map|23: ICONST_2 |24: ISTORE 2|25: GOTO 31}"] + "switchMethod2bb26" [label="26|{26: // label|27: // line number information|28: // stack frame map|29: ICONST_M1 |30: ISTORE 2}"] + "switchMethod2bb31" [label="31|{31: // label|32: // line number information|33: // stack frame map|34: ILOAD 2|35: IRETURN }"] - switchMethod2e -> switchMethod2bb0 - switchMethod2bb26 -> switchMethod2bb31 - switchMethod2bb31 -> switchMethod2x - switchMethod2bb0 -> switchMethod2bb8 [label="0"] - switchMethod2bb0 -> switchMethod2bb14 [label="1000"] - switchMethod2bb0 -> switchMethod2bb20 [label="2000"] - switchMethod2bb0 -> switchMethod2bb26 [label="default"] - switchMethod2bb8 -> switchMethod2bb31 [label="T"] - switchMethod2bb14 -> switchMethod2bb31 [label="T"] - switchMethod2bb20 -> switchMethod2bb31 [label="T"] + "switchMethod2bb-1" -> "switchMethod2bb0" + "switchMethod2bb26" -> "switchMethod2bb31" + "switchMethod2bb31" -> "switchMethod2bb-2" + "switchMethod2bb0" -> "switchMethod2bb8" [label="0"] + "switchMethod2bb0" -> "switchMethod2bb14" [label="1000"] + "switchMethod2bb0" -> "switchMethod2bb20" [label="2000"] + "switchMethod2bb0" -> "switchMethod2bb26" [label="default"] + "switchMethod2bb8" -> "switchMethod2bb31" [label="T"] + "switchMethod2bb14" -> "switchMethod2bb31" [label="T"] + "switchMethod2bb20" -> "switchMethod2bb31" [label="T"] } diff --git a/test-output/whileMethod.dot b/test-output/whileMethod.dot index dba900e..b2f3503 100644 --- a/test-output/whileMethod.dot +++ b/test-output/whileMethod.dot @@ -1,17 +1,17 @@ digraph whileMethod { node [shape=record] - whileMethode [shape=circle,label="e",xlabel="whileMethod"] - whileMethodx [shape=circle,label="x"] - whileMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"] - whileMethodbb4 [label="4|{4: // label|5: // line number information|6: // stack frame map|7: ILOAD 1|8: IFLE 19}"] - whileMethodbb9 [label="9|{9: // label|10: // line number information|11: ILOAD 2|12: ILOAD 1|13: IADD |14: ISTORE 2|15: // label|16: // line number information|17: IINC 1 -1|18: GOTO 4}"] - whileMethodbb19 [label="19|{19: // label|20: // line number information|21: // stack frame map|22: ILOAD 2|23: IRETURN }"] + "whileMethodbb-1" [shape=circle,label="e",xlabel="whileMethod"] + "whileMethodbb-2" [shape=circle,label="x"] + "whileMethodbb0" [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"] + "whileMethodbb4" [label="4|{4: // label|5: // line number information|6: // stack frame map|7: ILOAD 1|8: IFLE 19}"] + "whileMethodbb9" [label="9|{9: // label|10: // line number information|11: ILOAD 2|12: ILOAD 1|13: IADD |14: ISTORE 2|15: // label|16: // line number information|17: IINC 1 -1|18: GOTO 4}"] + "whileMethodbb19" [label="19|{19: // label|20: // line number information|21: // stack frame map|22: ILOAD 2|23: IRETURN }"] - whileMethode -> whileMethodbb0 - whileMethodbb0 -> whileMethodbb4 - whileMethodbb4 -> whileMethodbb9 - whileMethodbb19 -> whileMethodx - whileMethodbb9 -> whileMethodbb4 [label="T"] - whileMethodbb4 -> whileMethodbb19 [label="T"] + "whileMethodbb-1" -> "whileMethodbb0" + "whileMethodbb0" -> "whileMethodbb4" + "whileMethodbb4" -> "whileMethodbb9" + "whileMethodbb19" -> "whileMethodbb-2" + "whileMethodbb9" -> "whileMethodbb4" [label="T"] + "whileMethodbb4" -> "whileMethodbb19" [label="T"] } diff --git a/test-output/whileTrueMethod.dot b/test-output/whileTrueMethod.dot index 8a816b6..11743c1 100644 --- a/test-output/whileTrueMethod.dot +++ b/test-output/whileTrueMethod.dot @@ -1,10 +1,10 @@ digraph whileTrueMethod { node [shape=record] - whileTrueMethode [shape=circle,label="e",xlabel="whileTrueMethod"] - whileTrueMethode [shape=circle,label="e",xlabel="whileTrueMethod"] - whileTrueMethodbb0 [label="0|{0: // label|1: // line number information|2: // stack frame map|3: IINC 1 1|4: GOTO 0}"] + "whileTrueMethodbb-1" [shape=circle,label="e",xlabel="whileTrueMethod"] + "whileTrueMethodbb-2" [shape=circle,label="e",xlabel="whileTrueMethod"] + "whileTrueMethodbb0" [label="0|{0: // label|1: // line number information|2: // stack frame map|3: IINC 1 1|4: GOTO 0}"] - whileTrueMethode -> whileTrueMethodbb0 - whileTrueMethodbb0 -> whileTrueMethodbb0 [label="T"] + "whileTrueMethodbb-1" -> "whileTrueMethodbb0" + "whileTrueMethodbb0" -> "whileTrueMethodbb0" [label="T"] }