Commit 64b1889e authored by Than McIntosh's avatar Than McIntosh

test: new test for issue 30862

New test case, inspired by gccgo issue 30862.

Updates #30862.

Change-Id: I5e494b877e4fd142b8facb527471fe1fdef39c61
Reviewed-on: https://go-review.googlesource.com/c/go/+/167744
Run-TryBot: Than McIntosh <thanm@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
parent 156c830b
// 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
var pl int
type NoitfStruct struct {
F int
G int
}
//go:nointerface
func (t *NoitfStruct) NoInterfaceMethod() {}
// 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 EmbedImported struct {
a.NoitfStruct
}
func Test() []string {
bad := []string{}
x := interface{}(new(a.NoitfStruct))
if _, ok := x.(interface {
NoInterfaceMethod()
}); ok {
bad = append(bad, "fail 1")
}
x = interface{}(new(EmbedImported))
if _, ok := x.(interface {
NoInterfaceMethod()
}); ok {
bad = append(bad, "fail 2")
}
return bad
}
// 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 main
import (
"fmt"
"os"
"./b"
)
// Test case for issue 30862.
// Be aware that unless GOEXPERIMENT=fieldtrack is set when building
// the compiler, this test will fail if executed with a regular GC
// compiler.
func main() {
bad := b.Test()
if len(bad) > 0 {
for _, s := range bad {
fmt.Fprintf(os.Stderr, "test failed: %s\n", s)
}
os.Exit(1)
}
}
// rundir
// 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.
// Test case for issue 30862. This test as written will
// fail for the main 'gc' compiler unless GOEXPERIMENT=fieldtrack
// is set when building it, whereas gccgo has field tracking
// enabled by default (hence the build tag below).
// +build gccgo
package ignored
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment