gccgo gets this wrong at the moment.
R=rsc
CC=golang-dev
https://golang.org/cl/205044
--- /dev/null
+// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: bug253
+
+// Copyright 2010 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
+
+type S1 struct {
+ i int
+}
+type S2 struct {
+ i int
+}
+type S3 struct {
+ S1
+ S2
+}
+type S4 struct {
+ S3
+ S1
+}
+func main() {
+ var s4 S4
+ if s4.i != 0 { // .i refers to s4.S1.i, unambiguously
+ panic()
+ }
+}