build: separate compiler and libs
This commit is contained in:
16
compiler/cl/_testdefer/firstloop1/in.go
Normal file
16
compiler/cl/_testdefer/firstloop1/in.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package foo
|
||||
|
||||
func f(s string) bool {
|
||||
return len(s) > 2
|
||||
}
|
||||
|
||||
func Loop() {
|
||||
for i := 0; i < 3; i++ {
|
||||
if s := "hello"; f(s) {
|
||||
defer println(s)
|
||||
} else {
|
||||
defer println("world")
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
7
compiler/cl/_testdefer/firstloop1/out.txt
Normal file
7
compiler/cl/_testdefer/firstloop1/out.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
0: always
|
||||
6: cond
|
||||
1: loop
|
||||
2: loop
|
||||
4: loop
|
||||
3: cond
|
||||
5: cond
|
||||
7
compiler/cl/_testdefer/firstloop2/in.go
Normal file
7
compiler/cl/_testdefer/firstloop2/in.go
Normal file
@@ -0,0 +1,7 @@
|
||||
package foo
|
||||
|
||||
func Loop() {
|
||||
for i := 0; i < 3; i++ {
|
||||
println(i)
|
||||
}
|
||||
}
|
||||
4
compiler/cl/_testdefer/firstloop2/out.txt
Normal file
4
compiler/cl/_testdefer/firstloop2/out.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
0: always
|
||||
1: loop
|
||||
2: loop
|
||||
3: always
|
||||
20
compiler/cl/_testdefer/loop/in.go
Normal file
20
compiler/cl/_testdefer/loop/in.go
Normal file
@@ -0,0 +1,20 @@
|
||||
package main
|
||||
|
||||
func f(s string) bool {
|
||||
return len(s) > 2
|
||||
}
|
||||
|
||||
func main() {
|
||||
defer func() {
|
||||
println("hi")
|
||||
}()
|
||||
for i := 0; i < 3; i++ {
|
||||
if s := "hello"; f(s) {
|
||||
defer println(s)
|
||||
} else {
|
||||
defer println("world")
|
||||
return
|
||||
}
|
||||
}
|
||||
defer println("bye")
|
||||
}
|
||||
7
compiler/cl/_testdefer/loop/out.txt
Normal file
7
compiler/cl/_testdefer/loop/out.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
0: always
|
||||
1: cond
|
||||
2: loop
|
||||
3: loop
|
||||
5: loop
|
||||
4: cond
|
||||
6: cond
|
||||
18
compiler/cl/_testdefer/multiret/in.go
Normal file
18
compiler/cl/_testdefer/multiret/in.go
Normal file
@@ -0,0 +1,18 @@
|
||||
package main
|
||||
|
||||
func f(s string) bool {
|
||||
return len(s) > 2
|
||||
}
|
||||
|
||||
func main() {
|
||||
defer func() {
|
||||
println("hi")
|
||||
}()
|
||||
if s := "hello"; f(s) {
|
||||
defer println(s)
|
||||
} else {
|
||||
defer println("world")
|
||||
return
|
||||
}
|
||||
defer println("bye")
|
||||
}
|
||||
4
compiler/cl/_testdefer/multiret/out.txt
Normal file
4
compiler/cl/_testdefer/multiret/out.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
0: always
|
||||
1: cond
|
||||
2: cond
|
||||
3: cond
|
||||
52
compiler/cl/_testdefer/print/in.go
Normal file
52
compiler/cl/_testdefer/print/in.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package main
|
||||
|
||||
func f() float64 {
|
||||
return 1.0
|
||||
}
|
||||
|
||||
func main() {
|
||||
var v = f()
|
||||
const n = 7 // digits printed
|
||||
var buf [n + 7]byte
|
||||
buf[0] = '+'
|
||||
e := 0 // exp
|
||||
if v == 0 {
|
||||
if 1/v < 0 {
|
||||
buf[0] = '-'
|
||||
}
|
||||
} else {
|
||||
if v < 0 {
|
||||
v = -v
|
||||
buf[0] = '-'
|
||||
}
|
||||
|
||||
// normalize
|
||||
for v >= 10 {
|
||||
e++
|
||||
v /= 10
|
||||
}
|
||||
for v < 1 {
|
||||
e--
|
||||
v *= 10
|
||||
}
|
||||
|
||||
// round
|
||||
h := 5.0
|
||||
for i := 0; i < n; i++ {
|
||||
h /= 10
|
||||
}
|
||||
v += h
|
||||
if v >= 10 {
|
||||
e++
|
||||
v /= 10
|
||||
}
|
||||
}
|
||||
|
||||
// format +d.dddd+edd
|
||||
for i := 0; i < n; i++ {
|
||||
s := int(v)
|
||||
buf[i+2] = byte(s + '0')
|
||||
v -= float64(s)
|
||||
v *= 10
|
||||
}
|
||||
}
|
||||
18
compiler/cl/_testdefer/print/out.txt
Normal file
18
compiler/cl/_testdefer/print/out.txt
Normal file
@@ -0,0 +1,18 @@
|
||||
0: always
|
||||
1: cond
|
||||
3: cond
|
||||
4: cond
|
||||
5: cond
|
||||
7: loop
|
||||
6: loop
|
||||
10: loop
|
||||
8: loop
|
||||
9: cond
|
||||
11: loop
|
||||
12: loop
|
||||
13: cond
|
||||
14: cond
|
||||
2: cond
|
||||
15: loop
|
||||
16: loop
|
||||
17: always
|
||||
17
compiler/cl/_testdefer/singleret/in.go
Normal file
17
compiler/cl/_testdefer/singleret/in.go
Normal file
@@ -0,0 +1,17 @@
|
||||
package main
|
||||
|
||||
func f(s string) bool {
|
||||
return len(s) > 2
|
||||
}
|
||||
|
||||
func main() {
|
||||
defer func() {
|
||||
println("hi")
|
||||
}()
|
||||
if s := "hello"; f(s) {
|
||||
defer println(s)
|
||||
} else {
|
||||
defer println("world")
|
||||
}
|
||||
defer println("bye")
|
||||
}
|
||||
5
compiler/cl/_testdefer/singleret/out.txt
Normal file
5
compiler/cl/_testdefer/singleret/out.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
0: always
|
||||
1: cond
|
||||
2: cond
|
||||
4: cond
|
||||
3: always
|
||||
Reference in New Issue
Block a user