From 43d71e7d7d1ace38e6518335ff39b7848700b9ca Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Wed, 7 Mar 2012 22:40:32 -0500 Subject: [PATCH] cmd/cgo: silence const warnings Fixes #3152. R=golang-dev, dsymonds, r CC=golang-dev https://golang.org/cl/5786047 --- src/cmd/cgo/out.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/cmd/cgo/out.go b/src/cmd/cgo/out.go index 4dc0f84549..d6447caff6 100644 --- a/src/cmd/cgo/out.go +++ b/src/cmd/cgo/out.go @@ -411,10 +411,20 @@ func (p *Package) writeOutputFunc(fgcc *os.File, n *Name) { } } fmt.Fprintf(fgcc, "%s(", n.C) - for i := range n.FuncType.Params { + for i, t := range n.FuncType.Params { if i > 0 { fmt.Fprintf(fgcc, ", ") } + // We know the type params are correct, because + // the Go equivalents had good type params. + // However, our version of the type omits the magic + // words const and volatile, which can provoke + // C compiler warnings. Silence them by casting + // all pointers to void*. (Eventually that will produce + // other warnings.) + if c := t.C.String(); c[len(c)-1] == '*' { + fmt.Fprintf(fgcc, "(void*)") + } fmt.Fprintf(fgcc, "a->p%d", i) } fmt.Fprintf(fgcc, ");\n") -- 2.51.0