Loops are followed by read(Unit) in order to prevent the CFA from thinking that the condition is returned
This commit is contained in:
@@ -227,8 +227,9 @@ l4:
|
||||
l6:
|
||||
r(2)
|
||||
jmp(l3)
|
||||
l1:
|
||||
l2:
|
||||
read (Unit)
|
||||
l1:
|
||||
<END>
|
||||
=====================
|
||||
== t3 ==
|
||||
@@ -265,6 +266,7 @@ l5:
|
||||
l6:
|
||||
jmp(l4)
|
||||
l3:
|
||||
read (Unit)
|
||||
r(5)
|
||||
l2:
|
||||
r(2)
|
||||
@@ -303,8 +305,9 @@ l5:
|
||||
read (Unit)
|
||||
l6:
|
||||
jmp(l4)
|
||||
l2:
|
||||
l3:
|
||||
read (Unit)
|
||||
l2:
|
||||
r(2)
|
||||
l1:
|
||||
<END>
|
||||
@@ -347,8 +350,9 @@ l4:
|
||||
l6:
|
||||
r(2)
|
||||
jmp?(l3)
|
||||
l1:
|
||||
l2:
|
||||
read (Unit)
|
||||
l1:
|
||||
<END>
|
||||
=====================
|
||||
== t3 ==
|
||||
@@ -388,6 +392,7 @@ l5:
|
||||
l6:
|
||||
jmp?(l4)
|
||||
l3:
|
||||
read (Unit)
|
||||
r(5)
|
||||
l2:
|
||||
r(2)
|
||||
@@ -429,8 +434,9 @@ l5:
|
||||
read (Unit)
|
||||
l6:
|
||||
jmp?(l4)
|
||||
l2:
|
||||
l3:
|
||||
read (Unit)
|
||||
l2:
|
||||
r(2)
|
||||
l1:
|
||||
<END>
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
== main ==
|
||||
fun main() {
|
||||
while(1 > 0) {
|
||||
2
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
l3:
|
||||
r(1)
|
||||
r(0)
|
||||
r(>)
|
||||
r(1 > 0)
|
||||
jf(l2)
|
||||
r(2)
|
||||
jmp(l3)
|
||||
l2:
|
||||
read (Unit)
|
||||
l1:
|
||||
<END>
|
||||
=====================
|
||||
== dowhile ==
|
||||
fun dowhile() {
|
||||
do {return}
|
||||
while(1 > 0)
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
l3:
|
||||
ret l1
|
||||
r(1)
|
||||
r(0)
|
||||
r(>)
|
||||
r(1 > 0)
|
||||
jt(l3)
|
||||
l2:
|
||||
read (Unit)
|
||||
l1:
|
||||
<END>
|
||||
=====================
|
||||
@@ -0,0 +1,10 @@
|
||||
fun main() {
|
||||
while(1 > 0) {
|
||||
2
|
||||
}
|
||||
}
|
||||
|
||||
fun dowhile() {
|
||||
do {return}
|
||||
while(1 > 0)
|
||||
}
|
||||
Reference in New Issue
Block a user