]> Cypherpunks repositories - gostls13.git/commitdiff
cgo: use C type void for opaque types if dwarf.Common().Type returns nothing
authorEden Li <eden.li@gmail.com>
Mon, 30 Nov 2009 02:14:39 +0000 (18:14 -0800)
committerRuss Cox <rsc@golang.org>
Mon, 30 Nov 2009 02:14:39 +0000 (18:14 -0800)
Ideally, the C name would come from the typedef or pointer that
references the Size<0 type, but we can't easily generate this without
performing a look-ahead to see if any referencing type will become opaque.

Fixes #334.
Fixes #281.

R=rsc
https://golang.org/cl/161056

src/cmd/cgo/gcc.go

index d2a7eeaddbb4a757757faab15dde9c23cc372112..7d377db54c39b7678e5c122eace058cb9699a9ae 100644 (file)
@@ -320,6 +320,9 @@ func (c *typeConv) Type(dtype dwarf.Type) *Type {
                // Unsized types are [0]byte
                t.Size = 0;
                t.Go = c.Opaque(0);
+               if t.C == "" {
+                       t.C = "void"
+               }
                return t;
        }