]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1] cgo: fix declarations in _cgo_export.c
authorIan Lance Taylor <iant@golang.org>
Fri, 21 Sep 2012 19:54:13 +0000 (05:54 +1000)
committerIan Lance Taylor <iant@golang.org>
Fri, 21 Sep 2012 19:54:13 +0000 (05:54 +1000)
««« backport 6751a0e1a6a4
cgo: fix declarations in _cgo_export.c

Declare crosscall2.  Declare the functions passed to it as
returning void, rather than relying on implicit return type.

R=golang-dev, minux.ma
CC=golang-dev
https://golang.org/cl/6432060

»»»

src/cmd/cgo/out.go

index 7eee67175400904740ddf2ff69208c84788aa194..96e5f9afbb2795cc642b92301c2a3593c446008d 100644 (file)
@@ -461,6 +461,8 @@ func (p *Package) writeExports(fgo2, fc, fm *os.File) {
        fmt.Fprintf(fgcc, "/* Created by cgo - DO NOT EDIT. */\n")
        fmt.Fprintf(fgcc, "#include \"_cgo_export.h\"\n")
 
+       fmt.Fprintf(fgcc, "\nextern void crosscall2(void (*fn)(void *, int), void *, int);\n\n")
+
        for _, exp := range p.ExpFunc {
                fn := exp.Func
 
@@ -552,7 +554,7 @@ func (p *Package) writeExports(fgo2, fc, fm *os.File) {
                s += ")"
                fmt.Fprintf(fgcch, "\nextern %s;\n", s)
 
-               fmt.Fprintf(fgcc, "extern _cgoexp%s_%s(void *, int);\n", cPrefix, exp.ExpName)
+               fmt.Fprintf(fgcc, "extern void _cgoexp%s_%s(void *, int);\n", cPrefix, exp.ExpName)
                fmt.Fprintf(fgcc, "\n%s\n", s)
                fmt.Fprintf(fgcc, "{\n")
                fmt.Fprintf(fgcc, "\t%s __attribute__((packed)) a;\n", ctype)