aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug392.dir
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug392.dir')
-rw-r--r--gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/one.go43
-rw-r--r--gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/pkg2.go25
-rw-r--r--gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/pkg3.go13
3 files changed, 81 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/one.go b/gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/one.go
new file mode 100644
index 000000000..8242f2846
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/one.go
@@ -0,0 +1,43 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Functions that the inliner exported incorrectly.
+
+package one
+
+type T int
+
+// Issue 2678
+func F1(T *T) bool { return T == nil }
+
+// Issue 2682.
+func F2(c chan int) bool { return c == (<-chan int)(nil) }
+
+// Use of single named return value.
+func F3() (ret []int) { return append(ret, 1) }
+
+// Call of inlined method with blank receiver.
+func (_ *T) M() int { return 1 }
+func (t *T) MM() int { return t.M() }
+
+
+// One more like issue 2678
+type S struct { x, y int }
+type U []S
+
+func F4(S int) U { return U{{S,S}} }
+
+func F5() []*S {
+ return []*S{ {1,2}, { 3, 4} }
+}
+
+func F6(S int) *U {
+ return &U{{S,S}}
+}
+
+// Bug in the fix.
+
+type PB struct { x int }
+
+func (t *PB) Reset() { *t = PB{} }
diff --git a/gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/pkg2.go b/gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/pkg2.go
new file mode 100644
index 000000000..8320b2fff
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/pkg2.go
@@ -0,0 +1,25 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Use the functions in one.go so that the inlined
+// forms get type-checked.
+
+package pkg2
+
+import "./one"
+
+func use() {
+ one.F1(nil)
+ one.F2(nil)
+ one.F3()
+ one.F4(1)
+
+ var t *one.T
+ t.M()
+ t.MM()
+}
+
+var V = []one.PB{{}, {}}
+
+func F() *one.PB
diff --git a/gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/pkg3.go b/gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/pkg3.go
new file mode 100644
index 000000000..402c3b083
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/pkg3.go
@@ -0,0 +1,13 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Use the functions in pkg2.go so that the inlined
+// forms get type-checked.
+
+package pkg3
+
+import "./pkg2"
+
+var x = pkg2.F()
+var v = pkg2.V