1// compile
2
3// Copyright 2009 The Go Authors. All rights reserved.
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file.
6
7// Some indirect uses of types crashed gccgo, because it assumed that
8// the size of the type was known before it had been computed.
9
10package p
11
12type S1 struct {
13	p *[1]S3
14	s [][1]S3
15	m map[int][1]S3
16	c chan [1]S3
17	i interface { f([1]S3) [1]S3 }
18	f func([1]S3) [1]S3
19}
20
21type S2 struct {
22	p *struct { F S3 }
23	s []struct { F S3 }
24	m map[int]struct { F S3 }
25	c chan struct { F S3 }
26	i interface { f(struct { F S3 }) struct { F S3 } }
27	f func(struct { F S3 } ) struct { F S3 }
28}
29
30type S3 struct {
31	I int
32}
33