aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavo Niemeyer <gustavo@niemeyer.net>2011-01-11 11:12:06 -0500
committerRuss Cox <rsc@golang.org>2011-01-11 11:12:06 -0500
commit9f178edf516ee6420e6e6709ae4e91a0a360f3f7 (patch)
tree4e62a9bfd939732b7839d2a27deeafa784f805ca
parent632be89407d862fb6f566e8c217d69a9cf24866d (diff)
downloadgo-9f178edf516ee6420e6e6709ae4e91a0a360f3f7.tar.gz
go-9f178edf516ee6420e6e6709ae4e91a0a360f3f7.zip
cgo: export unsafe.Pointer as void*
This will enable functions which use unsafe.Pointer as an argument to be correctly exported by cgo. R=rsc CC=golang-dev https://golang.org/cl/3849043
-rw-r--r--src/cmd/cgo/out.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/cmd/cgo/out.go b/src/cmd/cgo/out.go
index 481fff2197..c3f9ae60b1 100644
--- a/src/cmd/cgo/out.go
+++ b/src/cmd/cgo/out.go
@@ -606,6 +606,11 @@ func (p *Package) cgoType(e ast.Expr) *Type {
}
return r
}
+ case *ast.SelectorExpr:
+ id, ok := t.X.(*ast.Ident)
+ if ok && id.Name == "unsafe" && t.Sel.Name == "Pointer" {
+ return &Type{Size: p.PtrSize, Align: p.PtrSize, C: "void*"}
+ }
}
error(e.Pos(), "unrecognized Go type %T", e)
return &Type{Size: 4, Align: 4, C: "int"}