Initial commit: Go 1.23 release state
This commit is contained in:
53
test/fixedbugs/issue8947.go
Normal file
53
test/fixedbugs/issue8947.go
Normal file
@@ -0,0 +1,53 @@
|
||||
// run
|
||||
|
||||
// Copyright 2014 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.
|
||||
|
||||
// Some uses of zeroed constants in non-assignment
|
||||
// expressions broke with our more aggressive zeroing
|
||||
// of assignments (internal compiler errors).
|
||||
|
||||
package main
|
||||
|
||||
func f1() {
|
||||
type T [2]int
|
||||
p := T{0, 1}
|
||||
switch p {
|
||||
case T{0, 0}:
|
||||
panic("wrong1")
|
||||
case T{0, 1}:
|
||||
// ok
|
||||
default:
|
||||
panic("wrong2")
|
||||
}
|
||||
|
||||
if p == (T{0, 0}) {
|
||||
panic("wrong3")
|
||||
} else if p == (T{0, 1}) {
|
||||
// ok
|
||||
} else {
|
||||
panic("wrong4")
|
||||
}
|
||||
}
|
||||
|
||||
type T struct {
|
||||
V int
|
||||
}
|
||||
|
||||
var X = T{}.V
|
||||
|
||||
func f2() {
|
||||
var x = T{}.V
|
||||
if x != 0 {
|
||||
panic("wrongx")
|
||||
}
|
||||
if X != 0 {
|
||||
panic("wrongX")
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
f1()
|
||||
f2()
|
||||
}
|
||||
Reference in New Issue
Block a user