]> Cypherpunks repositories - gostls13.git/commitdiff
test: add new test of indirect type references
authorIan Lance Taylor <iant@golang.org>
Wed, 15 Feb 2012 15:39:46 +0000 (07:39 -0800)
committerIan Lance Taylor <iant@golang.org>
Wed, 15 Feb 2012 15:39:46 +0000 (07:39 -0800)
Similar to bug190, but without recursive reference.  Crashed
gccgo.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5672053

test/fixedbugs/bug417.go [new file with mode: 0644]

diff --git a/test/fixedbugs/bug417.go b/test/fixedbugs/bug417.go
new file mode 100644 (file)
index 0000000..8cd3f5e
--- /dev/null
@@ -0,0 +1,32 @@
+// $G $D/$F.go || echo BUG: should compile
+
+// Copyright 2009 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 indirect uses of types crashed gccgo, because it assumed that
+// the size of the type was known before it had been computed.
+
+package p
+
+type S1 struct {
+       p *[1]S3
+       s [][1]S3
+       m map[int][1]S3
+       c chan [1]S3
+       i interface { f([1]S3) [1]S3 }
+       f func([1]S3) [1]S3
+}
+
+type S2 struct {
+       p *struct { F S3 }
+       s []struct { F S3 }
+       m map[int]struct { F S3 }
+       c chan struct { F S3 }
+       i interface { f(struct { F S3 }) struct { F S3 } }
+       f func(struct { F S3 } ) struct { F S3 }
+}
+
+type S3 struct {
+       I int
+}