Files
kotlin-fork/compiler/testData/cfg/If.instructions
T
Andrey Breslav 6a4043c9a0 Do not display trivial sets of next/previous instructions in test data
For better readability of test failures
2013-12-05 13:02:17 +04:00

110 lines
2.5 KiB
Plaintext

== t1 ==
fun t1(b: Boolean) {
var u: String
if (b) {
u = "s"
}
doSmth(u)
var r: String
if (b) {
r = "s"
}
else {
r = "t"
}
doSmth(r)
}
---------------------
L0:
<START>
v(b: Boolean)
w(b)
v(var u: String)
r(b)
jf(L2) NEXT:[read (Unit), r("s")]
r("s")
w(u)
jmp(L3) NEXT:[r(u)]
L2:
read (Unit) PREV:[jf(L2)]
L3:
r(u) PREV:[jmp(L3), read (Unit)]
call(doSmth, doSmth)
v(var r: String)
r(b)
jf(L4) NEXT:[r("t"), r("s")]
r("s")
w(r)
jmp(L5) NEXT:[r(r)]
L4:
r("t") PREV:[jf(L4)]
w(r)
L5:
r(r) PREV:[jmp(L5), w(r)]
call(doSmth, doSmth)
L1:
<END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
sink:
<SINK> PREV:[<ERROR>, <END>]
=====================
== t2 ==
fun t2(b: Boolean) {
val i = 3
if (b) {
return;
}
doSmth(i)
if (i is Int) {
return;
}
}
---------------------
L0:
<START>
v(b: Boolean)
w(b)
v(val i = 3)
r(3)
w(i)
r(b)
jf(L2) NEXT:[read (Unit), ret L1]
ret L1 NEXT:[<END>]
- jmp(L3) NEXT:[r(i)] PREV:[]
L2:
read (Unit) PREV:[jf(L2)]
L3:
r(i)
call(doSmth, doSmth)
r(i)
jf(L4) NEXT:[read (Unit), ret L1]
ret L1 NEXT:[<END>]
- jmp(L5) NEXT:[<END>] PREV:[]
L4:
read (Unit) PREV:[jf(L4)]
L1:
L5:
<END> NEXT:[<SINK>] PREV:[ret L1, ret L1, read (Unit)]
error:
<ERROR> PREV:[]
sink:
<SINK> PREV:[<ERROR>, <END>]
=====================
== doSmth ==
fun doSmth(s: String) {}
---------------------
L0:
<START>
v(s: String)
w(s)
read (Unit)
L1:
<END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
sink:
<SINK> PREV:[<ERROR>, <END>]
=====================