diff --git a/test/fixedbugs/gcc67968.dir/a.go b/test/fixedbugs/gcc67968.dir/a.go new file mode 100644 index 0000000000..9f51a7a8bc --- /dev/null +++ b/test/fixedbugs/gcc67968.dir/a.go @@ -0,0 +1,12 @@ +// Copyright 2015 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 a + +type T int + +func (a *T) Foo() [1]string { + var r [1]string + return r +} diff --git a/test/fixedbugs/gcc67968.dir/b.go b/test/fixedbugs/gcc67968.dir/b.go new file mode 100644 index 0000000000..41b62d2088 --- /dev/null +++ b/test/fixedbugs/gcc67968.dir/b.go @@ -0,0 +1,12 @@ +// Copyright 2015 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 b + +import "./a" + +func F() (interface{}) { + var v *a.T + return v.Foo() +} diff --git a/test/fixedbugs/gcc67968.go b/test/fixedbugs/gcc67968.go new file mode 100644 index 0000000000..8db3dd8a51 --- /dev/null +++ b/test/fixedbugs/gcc67968.go @@ -0,0 +1,14 @@ +// compiledir + +// Copyright 2015 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. + +// https://gcc.gnu.org/PR67968 + +// gccgo compiler crash building the equality and hash functions for a +// type when a return statement requires a conversion to interface +// type of a call of function defined in a different package that +// returns an unnamed type. + +package ignored