diff options
author | Gustavo Niemeyer <gustavo@niemeyer.net> | 2011-01-11 11:12:06 -0500 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2011-01-11 11:12:06 -0500 |
commit | 9f178edf516ee6420e6e6709ae4e91a0a360f3f7 (patch) | |
tree | 4e62a9bfd939732b7839d2a27deeafa784f805ca | |
parent | 632be89407d862fb6f566e8c217d69a9cf24866d (diff) | |
download | go-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.go | 5 |
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"} |