f8039249c6
Also #KT-13612 Fixed (cherry picked from commit 7c188b3)
38 lines
1.8 KiB
Plaintext
Vendored
38 lines
1.8 KiB
Plaintext
Vendored
== 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>]
|
|
=====================
|