== test == fun test(b: Boolean) { do { if (b) break; continue; } while (true); } --------------------- L0: 1 v(b: Boolean) magic[FAKE_INITIALIZER](b: Boolean) -> w(b|) 2 mark({ do { if (b) break; continue; } while (true); }) 3 mark(do { if (b) break; continue; } while (true)) L2 [loop entry point]: L4 [body entry point]: mark({ if (b) break; continue; }) PREV:[mark(do { if (b) break; continue; } while (true)), jmp(L2)] mark(if (b) break) r(b) -> jf(L7|) NEXT:[read (Unit), jmp(L3)] jmp(L3) NEXT:[read (Unit)] - jmp(L8) NEXT:[merge(if (b) break|!) -> ] PREV:[] L7 [else branch]: read (Unit) PREV:[jf(L7|)] L8 ['if' expression result]: merge(if (b) break|!) -> jmp(L6) L5 [body exit point]: L6 [condition entry point]: r(true) -> 2 magic[VALUE_CONSUMER](true|) -> jmp(L2) NEXT:[mark({ if (b) break; continue; })] L3 [loop exit point]: read (Unit) PREV:[jmp(L3)] L1: 1 NEXT:[] error: PREV:[] sink: PREV:[, ] =====================