reading Blort.class... method ()V first 000c block 0000 pred 000a Blort.java:2@0001: Rop{invoke-direct . <- Ljava/lang/Object; call throws }(java.lang.Object.:()V catch) . <- v0:NffffLBlort; next 000b block 000a pred 000c Blort.java:2@0000: move-param-object(0) v0:"this"NffffLBlort; <- . Blort.java:2@0000: goto . <- . next 0000 block 000b pred 0000 Blort.java:2@0004: return-void . <- . returns block 000c @????: goto . <- . next 000a method testMultipleIdenticalSuccessors (I)V first 0053 block 0000 pred 004a Blort.java:5@0001: switch({1, 2, 3}) . <- v3:I next 001c next 001c next 001c next 004b * block 001c pred 0000 pred 0000 pred 0000 Blort.java:9@001c: get-static-object(java.lang.System.out:Ljava/io/PrintStrea m; catch) . <- . next 0051 block 001f pred 0051 Blort.java:9@001f: const-object("foo" catch) . <- . next 0052 block 0021 pred 0052 Blort.java:9@0021: Rop{invoke-virtual . <- Ljava/io/PrintStream; Ljava/lang/S tring; call throws }(java.io.PrintStream.println:(Ljava/lang/String;)V c atch) . <- v0:Ljava/io/PrintStream; v1:Ljava/lang/String;="foo" next 004b block 004a pred 0053 Blort.java:5@0000: move-param-object(0) v2:"this"LBlort; <- . Blort.java:5@0000: move-param-int(1) v3:"foo"I <- . Blort.java:5@0000: goto . <- . next 0000 block 004b pred 0000 pred 0021 Blort.java:12@0024: return-void . <- . returns block 0051 pred 001c Blort.java:9@001c: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} v 0:Ljava/io/PrintStream; <- . Blort.java:9@001c: goto . <- . next 001f block 0052 pred 001f Blort.java:9@001f: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1:L java/lang/String;="foo" <- . Blort.java:9@001f: goto . <- . next 0021 block 0053 @????: goto . <- . next 004a method testNoPrimarySuccessor ()V first 001a block 0000 pred 0012 Blort.java:16@0000: new-instance(java.lang.RuntimeException catch java.lang.R untimeException) . <- . next 001b next 0019 * block 0003 pred 0019 Blort.java:16@0004: Rop{invoke-direct . <- Ljava/lang/RuntimeException; call throws }(java.lang.RuntimeException.:()V catch java.lang.RuntimeEx ception) . <- v0:N0000Ljava/lang/RuntimeException; next 001b next 0007 * block 0007 pred 0003 Blort.java:16@0007: throw(catch java.lang.RuntimeException) . <- v0:Ljava/lan g/RuntimeException; next 001b block 0012 pred 001a Blort.java:16@0000: move-param-object(0) v1:"this"LBlort; <- . Blort.java:16@0000: goto . <- . next 0000 block 0013 pred 001b Blort.java:19@0009: return-void . <- . returns block 0019 pred 0000 Blort.java:16@0000: Rop{move-result-pseudo N0000Ljava/lang/RuntimeException; <- . flows} v0:N0000Ljava/lang/RuntimeException; <- . Blort.java:16@0000: goto . <- . next 0003 block 001a @????: goto . <- . next 0012 block 001b pred 0000 pred 0003 pred 0007 Blort.java:17@0008: Rop{move-exception Ljava/lang/RuntimeException; <- . flow s} v0:Ljava/lang/RuntimeException; <- . @????: goto . <- . next 0013