-------------------- <ReachDef: void <init>()> (reach-def) --------------------
[0@L4] invokespecial %this.<java.lang.Object: void <init>()>(); []
[1@L4] return; []

-------------------- <ReachDef: int foo(int,int,int)> (reach-def) --------------------
[0@L8] %intconst0 = 0; [%intconst0 = 0]
[1@L8] if (a > %intconst0) goto 3; [%intconst0 = 0]
[2@L8] goto 6; [%intconst0 = 0]
[3@L8] nop; [%intconst0 = 0]
[4@L9] x = a; [%intconst0 = 0, x = a]
[5@L8] goto 8; [%intconst0 = 0, x = a]
[6@L8] nop; [%intconst0 = 0]
[7@L11] x = b; [%intconst0 = 0, x = b]
[8@L11] nop; [%intconst0 = 0, x = a, x = b]
[9@L13] y = x; [%intconst0 = 0, x = a, x = b, y = x]
[10@L14] x = c; [%intconst0 = 0, x = c, y = x]
[11@L15] return x; [%intconst0 = 0, x = c, y = x]

-------------------- <ReachDef: int loop(int,int)> (reach-def) --------------------
[0@L19] nop; [%intconst0 = -1, a = a + %intconst0, c = b]
[1@L20] if (a > b) goto 3; [%intconst0 = -1, a = a + %intconst0, c = b]
[2@L20] goto 8; [%intconst0 = -1, a = a + %intconst0, c = b]
[3@L20] nop; [%intconst0 = -1, a = a + %intconst0, c = b]
[4@L21] c = b; [%intconst0 = -1, a = a + %intconst0, c = b]
[5@L22] %intconst0 = -1; [%intconst0 = -1, a = a + %intconst0, c = b]
[6@L22] a = a + %intconst0; [%intconst0 = -1, a = a + %intconst0, c = b]
[7@L20] goto 0; [%intconst0 = -1, a = a + %intconst0, c = b]
[8@L20] nop; [%intconst0 = -1, a = a + %intconst0, c = b]
[9@L24] return c; [%intconst0 = -1, a = a + %intconst0, c = b]

