go/test/fixedbugs/issue7405.go
Rémy Oudompheng 0285d2b96b cmd/6g, cmd/8g: skip CONVNOP nodes in bgen.
Revision 3ae4607a43ff introduced CONVNOP layers
to fix type checking issues arising from comparisons.
The added complexity made 8g run out of registers
when compiling an equality function in go.net/ipv6.

A similar issue occurred in test/sizeof.go on
amd64p32 with 6g.

Fixes #7405.

LGTM=khr
R=rsc, dave, iant, khr
CC=golang-codereviews
https://golang.org/cl/78100044
2014-03-20 22:22:37 +01:00

52 lines
638 B
Go

// compile
// 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.
// Issue 7405: the equality function for struct with many
// embedded fields became more complex after fixing issue 7366,
// leading to out of registers on 386.
package p
type T1 struct {
T2
T3
T4
}
type T2 struct {
Conn
}
type T3 struct {
PacketConn
}
type T4 struct {
PacketConn
T5
}
type T5 struct {
x int
T6
}
type T6 struct {
y, z int
}
type Conn interface {
A()
}
type PacketConn interface {
B()
}
func F(a, b T1) bool {
return a == b
}