81 lines
2.7 KiB
Plaintext
81 lines
2.7 KiB
Plaintext
== Test ==
|
|
class Test {
|
|
var x : Int;
|
|
}
|
|
---------------------
|
|
L0:
|
|
<START>
|
|
v(var x : Int;)
|
|
L1:
|
|
<END> NEXT:[<SINK>]
|
|
error:
|
|
<ERROR> PREV:[]
|
|
sink:
|
|
<SINK> PREV:[<ERROR>, <END>]
|
|
=====================
|
|
== assignments ==
|
|
fun assignments() : Unit {
|
|
var x = 1
|
|
x = 2
|
|
x += 2
|
|
|
|
x = if (true) 1 else 2
|
|
|
|
val y = true && false
|
|
val z = false && true
|
|
|
|
val t = Test();
|
|
t.x = 1
|
|
}
|
|
---------------------
|
|
L0:
|
|
<START>
|
|
mark({ var x = 1 x = 2 x += 2 x = if (true) 1 else 2 val y = true && false val z = false && true val t = Test(); t.x = 1 })
|
|
v(var x = 1)
|
|
r(1)
|
|
w(x)
|
|
r(2)
|
|
w(x)
|
|
mark(x += 2)
|
|
r(x)
|
|
r(2)
|
|
call(+=, plus)
|
|
w(x)
|
|
mark(if (true) 1 else 2)
|
|
r(true)
|
|
jf(L2) NEXT:[r(2), r(1)]
|
|
r(1)
|
|
jmp(L3) NEXT:[w(x)]
|
|
L2:
|
|
r(2) PREV:[jf(L2)]
|
|
L3:
|
|
w(x) PREV:[jmp(L3), r(2)]
|
|
v(val y = true && false)
|
|
r(true)
|
|
jf(L4) NEXT:[r(true && false), r(false)]
|
|
r(false)
|
|
L4:
|
|
r(true && false) PREV:[jf(L4), r(false)]
|
|
w(y)
|
|
v(val z = false && true)
|
|
r(false)
|
|
jf(L5) NEXT:[r(false && true), r(true)]
|
|
r(true)
|
|
L5:
|
|
r(false && true) PREV:[jf(L5), r(true)]
|
|
w(z)
|
|
v(val t = Test())
|
|
mark(Test())
|
|
call(Test, <init>)
|
|
w(t)
|
|
r(1)
|
|
r(t)
|
|
w(t.x)
|
|
L1:
|
|
<END> NEXT:[<SINK>]
|
|
error:
|
|
<ERROR> PREV:[]
|
|
sink:
|
|
<SINK> PREV:[<ERROR>, <END>]
|
|
=====================
|