mirror of
https://github.com/golang/go
synced 2024-11-11 19:41:36 -07:00
test: add bug437, a test that used to fail with gccgo at link time
Updates #3391. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6177045
This commit is contained in:
parent
c8e1946f33
commit
890be5ced0
18
test/fixedbugs/bug437.dir/one.go
Normal file
18
test/fixedbugs/bug437.dir/one.go
Normal file
@ -0,0 +1,18 @@
|
||||
// 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.
|
||||
|
||||
package one
|
||||
|
||||
type I1 interface {
|
||||
f()
|
||||
}
|
||||
|
||||
type S1 struct {
|
||||
}
|
||||
|
||||
func (s S1) f() {
|
||||
}
|
||||
|
||||
func F1(i1 I1) {
|
||||
}
|
11
test/fixedbugs/bug437.dir/two.go
Normal file
11
test/fixedbugs/bug437.dir/two.go
Normal file
@ -0,0 +1,11 @@
|
||||
// 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.
|
||||
|
||||
package two
|
||||
|
||||
import "./one"
|
||||
|
||||
type S2 struct {
|
||||
one.S1
|
||||
}
|
27
test/fixedbugs/bug437.go
Normal file
27
test/fixedbugs/bug437.go
Normal file
@ -0,0 +1,27 @@
|
||||
// $G $D/$F.dir/one.go && $G $D/$F.dir/two.go && $G $D/$F.go && $L $F.$A && ./$A.out
|
||||
|
||||
// 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.
|
||||
|
||||
// Test converting a type defined in a different package to an
|
||||
// interface defined in a third package, where the interface has a
|
||||
// hidden method. This used to cause a link error with gccgo.
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"./one"
|
||||
"./two"
|
||||
)
|
||||
|
||||
func F(i1 one.I1) {
|
||||
switch v := i1.(type) {
|
||||
case two.S2:
|
||||
one.F1(v)
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
F(nil)
|
||||
}
|
Loading…
Reference in New Issue
Block a user