diff options
| author | Peter Collingbourne <peter@pcc.me.uk> | 2014-11-27 00:06:42 +0000 |
|---|---|---|
| committer | Peter Collingbourne <peter@pcc.me.uk> | 2014-11-27 00:06:42 +0000 |
| commit | ad9841e8ac74bfcb1814b728a143408e87dd00a7 (patch) | |
| tree | a36b962fece0b5b9676f26c1af90b43388069284 /llgo/test/execution/functions | |
| parent | 5468e86469f716eb40b1b39dfd9fd92e4f35df9e (diff) | |
| download | bcm5719-llvm-ad9841e8ac74bfcb1814b728a143408e87dd00a7.tar.gz bcm5719-llvm-ad9841e8ac74bfcb1814b728a143408e87dd00a7.zip | |
Initial commit of llgo.
llvm-svn: 222857
Diffstat (limited to 'llgo/test/execution/functions')
| -rw-r--r-- | llgo/test/execution/functions/compare.go | 26 | ||||
| -rw-r--r-- | llgo/test/execution/functions/multivalue.go | 28 | ||||
| -rw-r--r-- | llgo/test/execution/functions/unreachable.go | 53 |
3 files changed, 107 insertions, 0 deletions
diff --git a/llgo/test/execution/functions/compare.go b/llgo/test/execution/functions/compare.go new file mode 100644 index 00000000000..9daa062efe9 --- /dev/null +++ b/llgo/test/execution/functions/compare.go @@ -0,0 +1,26 @@ +// RUN: llgo -o %t %s +// RUN: %t 2>&1 | FileCheck %s + +// CHECK: true +// CHECK-NEXT: false +// CHECK-NEXT: true +// CHECK-NEXT: false +// CHECK-NEXT: false +// CHECK-NEXT: true +// CHECK-NEXT: false +// CHECK-NEXT: true + +package main + +func main() { + var f func() + println(f == nil) + println(f != nil) + println(nil == f) + println(nil != f) + f = func() {} + println(f == nil) + println(f != nil) + println(nil == f) + println(nil != f) +} diff --git a/llgo/test/execution/functions/multivalue.go b/llgo/test/execution/functions/multivalue.go new file mode 100644 index 00000000000..a3ce79b3fc0 --- /dev/null +++ b/llgo/test/execution/functions/multivalue.go @@ -0,0 +1,28 @@ +// RUN: llgo -o %t %s +// RUN: %t 2>&1 | FileCheck %s + +// CHECK: 1 +// CHECK-NEXT: 20 +// CHECK-NEXT: extra: 10 + +package main + +func swap(a, b int) (int, int) { + return b, a +} + +func sub(a, b int) int { + return a - b +} + +func printint(a int, extra ...int) { + println(a) + for _, b := range extra { + println("extra:", b) + } +} + +func main() { + println(sub(swap(1, 2))) + printint(swap(10, 20)) +} diff --git a/llgo/test/execution/functions/unreachable.go b/llgo/test/execution/functions/unreachable.go new file mode 100644 index 00000000000..436012c4e41 --- /dev/null +++ b/llgo/test/execution/functions/unreachable.go @@ -0,0 +1,53 @@ +// RUN: llgo -o %t %s +// RUN: %t 2>&1 | FileCheck %s + +// CHECK: f1 +// CHECK-NEXT: f2 +// CHECK-NEXT: f3 +// CHECK-NEXT: f4 +// CHECK-NEXT: 123 + +package main + +func f1() { + if true { + println("f1") + return + } + for { + } +} + +func f2() { + defer func() { println("f2") }() + if true { + return + } + for { + } +} + +func f3() int { + if true { + println("f3") + return 123 + } + for { + } +} + +func f4() int { + defer func() { println("f4") }() + if true { + return 123 + } + for { + } +} + +func main() { + f1() + f2() + f3() + println(f4()) +} |

