From: Eden Li Date: Fri, 20 Nov 2009 06:09:01 +0000 (-0800) Subject: cgo now renders types with unknown size as [0]byte instead of raising a X-Git-Tag: weekly.2009-12-07~179 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=b30f753dc36ed55207295bc8e6dbadca305339a9;p=gostls13.git cgo now renders types with unknown size as [0]byte instead of raising a fatal error. Fixes #126. R=rsc https://golang.org/cl/157101 --- diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index 5f3653976d..255946d9c5 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -315,11 +315,14 @@ func (c *typeConv) Type(dtype dwarf.Type) *Type { t.Size = dtype.Size(); t.Align = -1; t.C = dtype.Common().Name; + c.m[dtype] = t; if t.Size < 0 { - fatal("dwarf.Type %s reports unknown size", dtype) + // Unsized types are [0]byte + t.Size = 0; + t.Go = c.Opaque(0); + return t; } - c.m[dtype] = t; switch dt := dtype.(type) { default: fatal("unexpected type: %s", dtype)