| // 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 | 
 | } |