Updated tests for control flow: call instruction stores call element
instead of callee expression
This commit is contained in:
@@ -54,7 +54,7 @@ L0:
|
||||
r(2) -> <v1>
|
||||
r(3) -> <v2>
|
||||
mark(2 > 3)
|
||||
call(>, compareTo|<v1>, <v2>) -> <v3>
|
||||
call(2 > 3, compareTo|<v1>, <v2>) -> <v3>
|
||||
jf(L3|<v3>) NEXT:[read (Unit), mark({ return })]
|
||||
4 mark({ return })
|
||||
L4 [start finally]:
|
||||
@@ -139,20 +139,20 @@ L4:
|
||||
r(2) -> <v0>
|
||||
r(3) -> <v1>
|
||||
mark(2 > 3)
|
||||
call(>, compareTo|<v0>, <v1>) -> <v2>
|
||||
jf(L6|<v2>) NEXT:[read (Unit), mark({ return@l })]
|
||||
call(2 > 3, compareTo|<v0>, <v1>) -> <v2>
|
||||
jf(L6|<v2>) NEXT:[read (Unit), mark({ return@l })]
|
||||
6 mark({ return@l })
|
||||
ret L5 NEXT:[<END>]
|
||||
- 5 jmp(L7) NEXT:[<END>] PREV:[]
|
||||
ret L5 NEXT:[<END>]
|
||||
- 5 jmp(L7) NEXT:[<END>] PREV:[]
|
||||
L6:
|
||||
read (Unit) PREV:[jf(L6|<v2>)]
|
||||
read (Unit) PREV:[jf(L6|<v2>)]
|
||||
L5:
|
||||
L7:
|
||||
4 <END> NEXT:[<SINK>] PREV:[ret L5, read (Unit)]
|
||||
4 <END> NEXT:[<SINK>] PREV:[ret L5, read (Unit)]
|
||||
error:
|
||||
<ERROR> PREV:[]
|
||||
<ERROR> PREV:[]
|
||||
sink:
|
||||
<SINK> PREV:[<ERROR>, <END>]
|
||||
<SINK> PREV:[<ERROR>, <END>]
|
||||
=====================
|
||||
== t4 ==
|
||||
fun t4() {
|
||||
@@ -207,7 +207,7 @@ L3:
|
||||
r(2) -> <v1>
|
||||
r(3) -> <v2>
|
||||
mark(2 > 3)
|
||||
call(>, compareTo|<v1>, <v2>) -> <v3>
|
||||
call(2 > 3, compareTo|<v1>, <v2>) -> <v3>
|
||||
jf(L6|<v3>) NEXT:[read (Unit), mark({ return@l })]
|
||||
6 mark({ return@l })
|
||||
L7 [start finally]:
|
||||
@@ -266,7 +266,7 @@ L4 [body entry point]:
|
||||
r(2) -> <v2>
|
||||
r(3) -> <v3>
|
||||
mark(2 > 3)
|
||||
call(>, compareTo|<v2>, <v3>) -> <v4>
|
||||
call(2 > 3, compareTo|<v2>, <v3>) -> <v4>
|
||||
jf(L7|<v4>) NEXT:[read (Unit), mark({ break @l })]
|
||||
5 mark({ break @l })
|
||||
L8 [start finally]:
|
||||
@@ -329,7 +329,7 @@ L5 [body entry point]:
|
||||
r(2) -> <v2>
|
||||
r(3) -> <v3>
|
||||
mark(2 > 3)
|
||||
call(>, compareTo|<v2>, <v3>) -> <v4>
|
||||
call(2 > 3, compareTo|<v2>, <v3>) -> <v4>
|
||||
jf(L7|<v4>) NEXT:[read (Unit), mark({ break @l })]
|
||||
5 mark({ break @l })
|
||||
jmp(L4 [loop exit point]) NEXT:[read (Unit)]
|
||||
@@ -390,7 +390,7 @@ L5 [body entry point]:
|
||||
r(2) -> <v2>
|
||||
r(3) -> <v3>
|
||||
mark(2 > 3)
|
||||
call(>, compareTo|<v2>, <v3>) -> <v4>
|
||||
call(2 > 3, compareTo|<v2>, <v3>) -> <v4>
|
||||
jf(L7|<v4>) NEXT:[read (Unit), mark({ break @l })]
|
||||
5 mark({ break @l })
|
||||
jmp(L4 [loop exit point]) NEXT:[read (Unit)]
|
||||
@@ -442,7 +442,7 @@ L0:
|
||||
3 r(1) -> <v1>
|
||||
r(a) -> <v2>
|
||||
mark(1..a)
|
||||
call(.., rangeTo|<v1>, <v2>) -> <v3>
|
||||
call(1..a, rangeTo|<v1>, <v2>) -> <v3>
|
||||
v(i)
|
||||
L3:
|
||||
jmp?(L2) NEXT:[read (Unit), magic(1..a|<v3>) -> <v4>]
|
||||
@@ -460,7 +460,7 @@ L5 [body entry point]:
|
||||
r(2) -> <v6>
|
||||
r(3) -> <v7>
|
||||
mark(2 > 3)
|
||||
call(>, compareTo|<v6>, <v7>) -> <v8>
|
||||
call(2 > 3, compareTo|<v6>, <v7>) -> <v8>
|
||||
jf(L7|<v8>) NEXT:[read (Unit), mark({ continue @l })]
|
||||
6 mark({ continue @l })
|
||||
L8 [start finally]:
|
||||
@@ -518,7 +518,7 @@ L0:
|
||||
4 r(1) -> <v1>
|
||||
r(a) -> <v2>
|
||||
mark(1..a)
|
||||
call(.., rangeTo|<v1>, <v2>) -> <v3>
|
||||
call(1..a, rangeTo|<v1>, <v2>) -> <v3>
|
||||
v(i)
|
||||
L4:
|
||||
jmp?(L3) NEXT:[read (Unit), magic(1..a|<v3>) -> <v4>]
|
||||
@@ -533,7 +533,7 @@ L6 [body entry point]:
|
||||
r(2) -> <v6>
|
||||
r(3) -> <v7>
|
||||
mark(2 > 3)
|
||||
call(>, compareTo|<v6>, <v7>) -> <v8>
|
||||
call(2 > 3, compareTo|<v6>, <v7>) -> <v8>
|
||||
jf(L7|<v8>) NEXT:[read (Unit), mark({ continue @l })]
|
||||
6 mark({ continue @l })
|
||||
jmp(L5 [loop entry point]) NEXT:[magic(1..a|<v3>) -> <v4>]
|
||||
@@ -589,7 +589,7 @@ L0:
|
||||
4 r(1) -> <v1>
|
||||
r(a) -> <v2>
|
||||
mark(1..a)
|
||||
call(.., rangeTo|<v1>, <v2>) -> <v3>
|
||||
call(1..a, rangeTo|<v1>, <v2>) -> <v3>
|
||||
v(i)
|
||||
L4:
|
||||
jmp?(L3) NEXT:[read (Unit), magic(1..a|<v3>) -> <v4>]
|
||||
@@ -604,7 +604,7 @@ L6 [body entry point]:
|
||||
r(2) -> <v6>
|
||||
r(3) -> <v7>
|
||||
mark(2 > 3)
|
||||
call(>, compareTo|<v6>, <v7>) -> <v8>
|
||||
call(2 > 3, compareTo|<v6>, <v7>) -> <v8>
|
||||
jf(L7|<v8>) NEXT:[read (Unit), mark({ continue @l })]
|
||||
6 mark({ continue @l })
|
||||
jmp(L5 [loop entry point]) NEXT:[magic(1..a|<v3>) -> <v4>]
|
||||
@@ -693,7 +693,7 @@ L3 [start finally]:
|
||||
4 mark({ doSmth(3) })
|
||||
r(3) -> <v1>
|
||||
mark(doSmth(3))
|
||||
call(doSmth, doSmth|<v1>) -> <v2>
|
||||
call(doSmth(3), doSmth|<v1>) -> <v2>
|
||||
L4 [finish finally]:
|
||||
3 ret(*|<v0>) L1 NEXT:[<END>]
|
||||
- 2 jmp(L5 [skipFinallyToErrorBlock]) NEXT:[mark({ doSmth(3) })] PREV:[]
|
||||
@@ -701,13 +701,13 @@ L2 [onExceptionToFinallyBlock]:
|
||||
4 mark({ doSmth(3) }) PREV:[jmp?(L2 [onExceptionToFinallyBlock])]
|
||||
r(3) -> <v1>
|
||||
mark(doSmth(3))
|
||||
call(doSmth, doSmth|<v1>) -> <v2>
|
||||
call(doSmth(3), doSmth|<v1>) -> <v2>
|
||||
2 jmp(error) NEXT:[<ERROR>]
|
||||
L5 [skipFinallyToErrorBlock]:
|
||||
- 4 mark({ doSmth(3) }) PREV:[]
|
||||
- r(3) -> <v1> PREV:[]
|
||||
- mark(doSmth(3)) PREV:[]
|
||||
- call(doSmth, doSmth|<v1>) -> <v2> PREV:[]
|
||||
- call(doSmth(3), doSmth|<v1>) -> <v2> PREV:[]
|
||||
L1:
|
||||
1 <END> NEXT:[<SINK>] PREV:[ret(*|<v0>) L1]
|
||||
error:
|
||||
@@ -740,7 +740,7 @@ L4 [start finally]:
|
||||
4 mark({ doSmth(3) })
|
||||
r(3) -> <v1>
|
||||
mark(doSmth(3))
|
||||
call(doSmth, doSmth|<v1>) -> <v2>
|
||||
call(doSmth(3), doSmth|<v1>) -> <v2>
|
||||
L5 [finish finally]:
|
||||
3 ret(*|<v0>) L1 NEXT:[<END>]
|
||||
- 2 jmp(L6 [afterCatches]) NEXT:[jmp(L7 [skipFinallyToErrorBlock])] PREV:[]
|
||||
@@ -751,7 +751,7 @@ L2 [onException]:
|
||||
4 mark({ doSmth(2) })
|
||||
r(2) -> <v4>
|
||||
mark(doSmth(2))
|
||||
call(doSmth, doSmth|<v4>) -> <v5>
|
||||
call(doSmth(2), doSmth|<v4>) -> <v5>
|
||||
3 jmp(L6 [afterCatches])
|
||||
L6 [afterCatches]:
|
||||
2 jmp(L7 [skipFinallyToErrorBlock]) NEXT:[mark({ doSmth(3) })]
|
||||
@@ -759,15 +759,15 @@ L3 [onExceptionToFinallyBlock]:
|
||||
4 mark({ doSmth(3) }) PREV:[jmp?(L3 [onExceptionToFinallyBlock])]
|
||||
r(3) -> <v1>
|
||||
mark(doSmth(3))
|
||||
call(doSmth, doSmth|<v1>) -> <v2>
|
||||
call(doSmth(3), doSmth|<v1>) -> <v2>
|
||||
2 jmp(error) NEXT:[<ERROR>]
|
||||
L7 [skipFinallyToErrorBlock]:
|
||||
4 mark({ doSmth(3) }) PREV:[jmp(L7 [skipFinallyToErrorBlock])]
|
||||
r(3) -> <v1>
|
||||
mark(doSmth(3))
|
||||
call(doSmth, doSmth|<v1>) -> <v2>
|
||||
call(doSmth(3), doSmth|<v1>) -> <v2>
|
||||
L1:
|
||||
1 <END> NEXT:[<SINK>] PREV:[ret(*|<v0>) L1, call(doSmth, doSmth|<v1>) -> <v2>]
|
||||
1 <END> NEXT:[<SINK>] PREV:[ret(*|<v0>) L1, call(doSmth(3), doSmth|<v1>) -> <v2>]
|
||||
error:
|
||||
<ERROR> PREV:[jmp(error)]
|
||||
sink:
|
||||
@@ -799,7 +799,7 @@ L2 [onException]:
|
||||
4 mark({ doSmth(2) })
|
||||
r(2) -> <v2>
|
||||
mark(doSmth(2))
|
||||
call(doSmth, doSmth|<v2>) -> <v3>
|
||||
call(doSmth(2), doSmth|<v2>) -> <v3>
|
||||
3 jmp(L3 [afterCatches])
|
||||
L1:
|
||||
L3 [afterCatches]:
|
||||
@@ -834,7 +834,7 @@ L4 [start finally]:
|
||||
4 mark({ doSmth(3) })
|
||||
r(3) -> <v1>
|
||||
mark(doSmth(3))
|
||||
call(doSmth, doSmth|<v1>) -> <v2>
|
||||
call(doSmth(3), doSmth|<v1>) -> <v2>
|
||||
L5 [finish finally]:
|
||||
3 ret(*|<v0>) L1 NEXT:[<END>]
|
||||
- 2 jmp(L6 [afterCatches]) NEXT:[jmp(L7 [skipFinallyToErrorBlock])] PREV:[]
|
||||
@@ -847,7 +847,7 @@ L2 [onException]:
|
||||
mark({ doSmth(3) })
|
||||
r(3) -> <v1>
|
||||
mark(doSmth(3))
|
||||
call(doSmth, doSmth|<v1>) -> <v2>
|
||||
call(doSmth(3), doSmth|<v1>) -> <v2>
|
||||
ret(*|<v4>) L1 NEXT:[<END>]
|
||||
- 3 jmp(L6 [afterCatches]) PREV:[]
|
||||
L6 [afterCatches]:
|
||||
@@ -856,13 +856,13 @@ L3 [onExceptionToFinallyBlock]:
|
||||
4 mark({ doSmth(3) }) PREV:[jmp?(L3 [onExceptionToFinallyBlock])]
|
||||
r(3) -> <v1>
|
||||
mark(doSmth(3))
|
||||
call(doSmth, doSmth|<v1>) -> <v2>
|
||||
call(doSmth(3), doSmth|<v1>) -> <v2>
|
||||
2 jmp(error) NEXT:[<ERROR>]
|
||||
L7 [skipFinallyToErrorBlock]:
|
||||
- 4 mark({ doSmth(3) }) PREV:[]
|
||||
- r(3) -> <v1> PREV:[]
|
||||
- mark(doSmth(3)) PREV:[]
|
||||
- call(doSmth, doSmth|<v1>) -> <v2> PREV:[]
|
||||
- call(doSmth(3), doSmth|<v1>) -> <v2> PREV:[]
|
||||
L1:
|
||||
1 <END> NEXT:[<SINK>] PREV:[ret(*|<v0>) L1, ret(*|<v4>) L1]
|
||||
error:
|
||||
@@ -892,7 +892,7 @@ L0:
|
||||
3 mark({ doSmth(1) })
|
||||
r(1) -> <v0>
|
||||
mark(doSmth(1))
|
||||
call(doSmth, doSmth|<v0>) -> <v1>
|
||||
call(doSmth(1), doSmth|<v0>) -> <v1>
|
||||
2 jmp(L4 [afterCatches]) NEXT:[jmp(L7 [skipFinallyToErrorBlock])]
|
||||
L2 [onException]:
|
||||
3 v(e: UnsupportedOperationException) PREV:[jmp?(L2 [onException])]
|
||||
@@ -904,7 +904,7 @@ L5 [start finally]:
|
||||
5 mark({ doSmth(3) })
|
||||
r(3) -> <v4>
|
||||
mark(doSmth(3))
|
||||
call(doSmth, doSmth|<v4>) -> <v5>
|
||||
call(doSmth(3), doSmth|<v4>) -> <v5>
|
||||
L6 [finish finally]:
|
||||
4 ret(*|<v3>) L1 NEXT:[<END>]
|
||||
- 3 jmp(L4 [afterCatches]) PREV:[]
|
||||
@@ -914,15 +914,15 @@ L3 [onExceptionToFinallyBlock]:
|
||||
5 mark({ doSmth(3) }) PREV:[jmp?(L3 [onExceptionToFinallyBlock])]
|
||||
r(3) -> <v4>
|
||||
mark(doSmth(3))
|
||||
call(doSmth, doSmth|<v4>) -> <v5>
|
||||
call(doSmth(3), doSmth|<v4>) -> <v5>
|
||||
2 jmp(error) NEXT:[<ERROR>]
|
||||
L7 [skipFinallyToErrorBlock]:
|
||||
5 mark({ doSmth(3) }) PREV:[jmp(L7 [skipFinallyToErrorBlock])]
|
||||
r(3) -> <v4>
|
||||
mark(doSmth(3))
|
||||
call(doSmth, doSmth|<v4>) -> <v5>
|
||||
call(doSmth(3), doSmth|<v4>) -> <v5>
|
||||
L1:
|
||||
1 <END> NEXT:[<SINK>] PREV:[ret(*|<v3>) L1, call(doSmth, doSmth|<v4>) -> <v5>]
|
||||
1 <END> NEXT:[<SINK>] PREV:[ret(*|<v3>) L1, call(doSmth(3), doSmth|<v4>) -> <v5>]
|
||||
error:
|
||||
<ERROR> PREV:[jmp(error)]
|
||||
sink:
|
||||
|
||||
Reference in New Issue
Block a user