blob: 72f134f1d18e4c46fbbe0114158f9481d92fd410 [file] [log] [blame]
== foo ==
tailrec fun foo() {
try {
return foo()
}
catch (e: Throwable) {
}
}
---------------------
L0:
1 <START>
2 mark({ try { return foo() } catch (e: Throwable) { } })
mark(try { return foo() } catch (e: Throwable) { })
jmp?(L2) NEXT:[v(e: Throwable), mark({ return foo() })]
3 mark({ return foo() })
jmp?(L2) NEXT:[v(e: Throwable), mark(foo())]
mark(foo())
call(foo(), foo) -> <v0>
ret(*|<v0>) L1 NEXT:[<END>]
- 2 jmp?(L2) NEXT:[v(e: Throwable), jmp(L3)] PREV:[]
- jmp(L3) NEXT:[merge(try { return foo() } catch (e: Throwable) { }|!<v1>, !<v3>) -> <v4>] PREV:[]
L2 [onException]:
3 v(e: Throwable) PREV:[jmp?(L2), jmp?(L2)]
magic[FAKE_INITIALIZER](e: Throwable) -> <v2>
w(e|<v2>)
4 mark({ })
read (Unit)
3 jmp(L3)
L3 [afterCatches]:
2 merge(try { return foo() } catch (e: Throwable) { }|!<v1>, !<v3>) -> <v4>
L1:
1 <END> NEXT:[<SINK>] PREV:[ret(*|<v0>) L1, merge(try { return foo() } catch (e: Throwable) { }|!<v1>, !<v3>) -> <v4>]
error:
<ERROR> PREV:[]
sink:
<SINK> PREV:[<ERROR>, <END>]
=====================