Try..finally supported by CF-builder

This commit is contained in:
Andrey Breslav
2011-04-14 15:45:39 +04:00
parent bd73ef4bd9
commit 6e9e22df16
9 changed files with 666 additions and 34 deletions
+437
View File
@@ -0,0 +1,437 @@
== t3 ==
fun t3() {
try {
1
} finally {
2
}
}
---------------------
l0:
<START>
jmp?(l2)
r(1)
l2:
r(2)
l1:
<END>
=====================
== t3 ==
fun t3() {
try {
1
if (2 > 3) {
return
}
} finally {
2
}
}
---------------------
l0:
<START>
jmp?(l2)
r(1)
r(2)
r(3)
r(>)
r(2 > 3)
jf(l3)
r(2)
ret l1
jmp(l4)
l3:
read (Unit)
l2:
l4:
r(2)
l1:
<END>
=====================
== anonymous_0 ==
{ () =>
if (2 > 3) {
return@
}
}
---------------------
l3:
<START>
r(2)
r(3)
r(>)
r(2 > 3)
jf(l5)
ret l4
jmp(l6)
l5:
read (Unit)
l4:
l6:
<END>
=====================
== t3 ==
fun t3() {
try {
1
@{ () =>
if (2 > 3) {
return@
}
}
} finally {
2
}
}
---------------------
l0:
<START>
jmp?(l2)
r(1)
rf({ () =>
if (2 > 3) {
return@
}
})
l2:
r(2)
l1:
<END>
l3:
<START>
r(2)
r(3)
r(>)
r(2 > 3)
jf(l5)
ret l4
jmp(l6)
l5:
read (Unit)
l4:
l6:
<END>
=====================
== anonymous_1 ==
{ () =>
try {
1
if (2 > 3) {
return@
}
} finally {
2
}
}
---------------------
l2:
<START>
jmp?(l4)
r(1)
r(2)
r(3)
r(>)
r(2 > 3)
jf(l5)
r(2)
ret l3
jmp(l6)
l5:
read (Unit)
l4:
l6:
r(2)
l3:
<END>
=====================
== t3 ==
fun t3() {
@{ () =>
try {
1
if (2 > 3) {
return@
}
} finally {
2
}
}
}
---------------------
l0:
<START>
rf({ () =>
try {
1
if (2 > 3) {
return@
}
} finally {
2
}
})
l1:
<END>
l2:
<START>
jmp?(l4)
r(1)
r(2)
r(3)
r(>)
r(2 > 3)
jf(l5)
r(2)
ret l3
jmp(l6)
l5:
read (Unit)
l4:
l6:
r(2)
l3:
<END>
=====================
== t3 ==
fun t3() {
@ while(true) {
try {
1
if (2 > 3) {
break @
}
} finally {
2
}
}
}
---------------------
l0:
<START>
l3:
r(true)
jf(l2)
jmp?(l4)
r(1)
r(2)
r(3)
r(>)
r(2 > 3)
jf(l5)
r(2)
jmp(l2)
jmp(l6)
l5:
read (Unit)
l4:
l6:
r(2)
jmp(l3)
l1:
l2:
<END>
=====================
== t3 ==
fun t3() {
try {
@ while(true) {
1
if (2 > 3) {
break @
}
}
5
} finally {
2
}
}
---------------------
l0:
<START>
jmp?(l2)
l4:
r(true)
jf(l3)
r(1)
r(2)
r(3)
r(>)
r(2 > 3)
jf(l5)
jmp(l3)
jmp(l6)
l5:
read (Unit)
l6:
jmp(l4)
l3:
r(5)
l2:
r(2)
l1:
<END>
=====================
== t3 ==
fun t3() {
try {
@ while(true) {
1
if (2 > 3) {
break @
}
}
} finally {
2
}
}
---------------------
l0:
<START>
jmp?(l2)
l4:
r(true)
jf(l3)
r(1)
r(2)
r(3)
r(>)
r(2 > 3)
jf(l5)
jmp(l3)
jmp(l6)
l5:
read (Unit)
l6:
jmp(l4)
l2:
l3:
r(2)
l1:
<END>
=====================
== t3 ==
fun t3(a : Int) {
@ for (i in 1..a) {
try {
1
if (2 > 3) {
continue @
}
} finally {
2
}
}
}
---------------------
l0:
<START>
r(1)
r(a)
r(..)
r(1..a)
jmp?(l2)
l3:
jmp?(l4)
r(1)
r(2)
r(3)
r(>)
r(2 > 3)
jf(l5)
r(2)
jmp(l3)
jmp(l6)
l5:
read (Unit)
l4:
l6:
r(2)
jmp?(l3)
l1:
l2:
<END>
=====================
== t3 ==
fun t3(a : Int) {
try {
@ for (i in 1..a) {
1
if (2 > 3) {
continue @
}
}
5
} finally {
2
}
}
---------------------
l0:
<START>
jmp?(l2)
r(1)
r(a)
r(..)
r(1..a)
jmp?(l3)
l4:
r(1)
r(2)
r(3)
r(>)
r(2 > 3)
jf(l5)
jmp(l4)
jmp(l6)
l5:
read (Unit)
l6:
jmp?(l4)
l3:
r(5)
l2:
r(2)
l1:
<END>
=====================
== t3 ==
fun t3(a : Int) {
try {
@ for (i in 1..a) {
1
if (2 > 3) {
continue @
}
}
} finally {
2
}
}
---------------------
l0:
<START>
jmp?(l2)
r(1)
r(a)
r(..)
r(1..a)
jmp?(l3)
l4:
r(1)
r(2)
r(3)
r(>)
r(2 > 3)
jf(l5)
jmp(l4)
jmp(l6)
l5:
read (Unit)
l6:
jmp?(l4)
l2:
l3:
r(2)
l1:
<END>
=====================
+125
View File
@@ -0,0 +1,125 @@
fun t3() {
try {
1
} finally {
2
}
}
fun t3() {
try {
1
if (2 > 3) {
return
}
} finally {
2
}
}
fun t3() {
try {
1
@{ () =>
if (2 > 3) {
return@
}
}
} finally {
2
}
}
fun t3() {
@{ () =>
try {
1
if (2 > 3) {
return@
}
} finally {
2
}
}
}
fun t3() {
@ while(true) {
try {
1
if (2 > 3) {
break @
}
} finally {
2
}
}
}
fun t3() {
try {
@ while(true) {
1
if (2 > 3) {
break @
}
}
5
} finally {
2
}
}
fun t3() {
try {
@ while(true) {
1
if (2 > 3) {
break @
}
}
} finally {
2
}
}
fun t3(a : Int) {
@ for (i in 1..a) {
try {
1
if (2 > 3) {
continue @
}
} finally {
2
}
}
}
fun t3(a : Int) {
try {
@ for (i in 1..a) {
1
if (2 > 3) {
continue @
}
}
5
} finally {
2
}
}
fun t3(a : Int) {
try {
@ for (i in 1..a) {
1
if (2 > 3) {
continue @
}
}
} finally {
2
}
}