From 43a123c1ae6613b3efeed291fa552ecd909d3acf Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 16 Apr 2024 21:23:18 +0200 Subject: Adding upstream version 1.20.14. Signed-off-by: Daniel Baumann --- test/fixedbugs/bug392.dir/one.go | 43 +++++++++++++++++++++++++++++++++++++++ test/fixedbugs/bug392.dir/pkg2.go | 25 +++++++++++++++++++++++ test/fixedbugs/bug392.dir/pkg3.go | 13 ++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 test/fixedbugs/bug392.dir/one.go create mode 100644 test/fixedbugs/bug392.dir/pkg2.go create mode 100644 test/fixedbugs/bug392.dir/pkg3.go (limited to 'test/fixedbugs/bug392.dir') diff --git a/test/fixedbugs/bug392.dir/one.go b/test/fixedbugs/bug392.dir/one.go new file mode 100644 index 0000000..aba8649 --- /dev/null +++ b/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/test/fixedbugs/bug392.dir/pkg2.go b/test/fixedbugs/bug392.dir/pkg2.go new file mode 100644 index 0000000..2ee41f0 --- /dev/null +++ b/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/test/fixedbugs/bug392.dir/pkg3.go b/test/fixedbugs/bug392.dir/pkg3.go new file mode 100644 index 0000000..1403798 --- /dev/null +++ b/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 -- cgit v1.2.3