continue;
w = n->type->width;
- if((w >= MAXWIDTH) || (w < 0))
+ if(w >= MAXWIDTH || w < 0)
fatal("bad width");
stksize += w;
stksize = rnd(stksize, n->type->align);
if(ctxt == 0) {
// lay out static data
vstat = staticname(t, ctxt);
- structlit(1, 1, n, vstat, init);
+ structlit(ctxt, 1, n, vstat, init);
// copy static to var
a = nod(OAS, var, vstat);
--- /dev/null
+// $G $D/$F.go || echo BUG: bug354
+
+// Copyright 2011 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 2086
+// was calling makeclosure twice on the closure
+
+package main
+
+import (
+ "os"
+)
+
+type Inner struct {
+ F func() os.Error
+}
+
+type Outer struct {
+ Inners []Inner
+}
+
+// calls makeclosure twice on same closure
+
+var Foo = Outer{[]Inner{Inner{func() os.Error{ return nil }}}}