mirror of
https://github.com/golang/go.git
synced 2025-05-05 23:53:05 +00:00
test: add testcases for gccgo bug
Add a couple of testcase for a gccgo type checking bug. Updates #31412. Change-Id: I7a813dafde78e4add1432602d2af5fe879415e1c Reviewed-on: https://go-review.googlesource.com/c/go/+/171761 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
2ebdb5ec06
commit
d86c35e523
32
test/fixedbugs/issue31412a.go
Normal file
32
test/fixedbugs/issue31412a.go
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
// compile
|
||||||
|
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// This code was incorrectly flagged as erroneous by gccgo.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
type Name string
|
||||||
|
|
||||||
|
type EFunc func(int) int
|
||||||
|
|
||||||
|
func Register(f EFunc, names ...Name) int {
|
||||||
|
return f(len(names))
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
B Name = "B"
|
||||||
|
)
|
||||||
|
|
||||||
|
func RegisterIt() {
|
||||||
|
n := B + "Duck"
|
||||||
|
d := B + "Goose"
|
||||||
|
f := func(x int) int { return x + 9 }
|
||||||
|
Register(f, n, d)
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
RegisterIt()
|
||||||
|
}
|
20
test/fixedbugs/issue31412b.go
Normal file
20
test/fixedbugs/issue31412b.go
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// errorcheck
|
||||||
|
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// This code was incorrectly accepted by gccgo.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
type N string
|
||||||
|
type M string
|
||||||
|
|
||||||
|
const B N = "B"
|
||||||
|
const C M = "C"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
q := B + C // ERROR "mismatched types|incompatible types"
|
||||||
|
println(q)
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user