test: new testcase for gccgo compiler failure

Updates #33219

Change-Id: I1702d4c630bb891fcb8b59e775dd3f1673cd8640
Reviewed-on: https://go-review.googlesource.com/c/go/+/187057
Run-TryBot: Than McIntosh <thanm@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Than McIntosh 2019-07-22 09:33:15 -04:00
parent 707f3e8c61
commit e8c7e639ea
4 changed files with 71 additions and 0 deletions

View file

@ -0,0 +1,17 @@
// Copyright 2019 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 A interface {
M(i interface{}) interface{}
}
var a1 A
var a2 A
func V(p A, k, v interface{}) A {
defer func() { a1, a2 = a2, a1 }()
return a1
}

View file

@ -0,0 +1,25 @@
// Copyright 2019 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"
type Service uint64
var q *Service
var r *Service
type f struct{}
var fk f
func No(s a.A, qq uint8) *Service {
defer func() { q, r = r, q }()
return q
}
func Yes(s a.A, p *uint64) a.A {
return a.V(s, fk, p)
}

View file

@ -0,0 +1,20 @@
// Copyright 2019 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 c
import (
"a"
"b"
)
type BI interface {
Another(pxp a.A) int32
}
//go:noinline
func BRS(sd a.A, xyz int) *b.Service {
x := b.Yes(sd, nil)
return b.No(x, 1)
}

View file

@ -0,0 +1,9 @@
// compiledir
// Copyright 2019 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.
// Issue 33219: gccgo assert in "implements_interface()"
package ignored