diff options
Diffstat (limited to 'misc/cgo/errors/testdata/issue13830.go')
| -rw-r--r-- | misc/cgo/errors/testdata/issue13830.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/misc/cgo/errors/testdata/issue13830.go b/misc/cgo/errors/testdata/issue13830.go new file mode 100644 index 0000000000..ac20c82b81 --- /dev/null +++ b/misc/cgo/errors/testdata/issue13830.go @@ -0,0 +1,26 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// cgo converts C void* to Go unsafe.Pointer, so despite appearances C +// void** is Go *unsafe.Pointer. This test verifies that we detect the +// problem at build time. + +package main + +// typedef void v; +// void F(v** p) {} +import "C" + +import "unsafe" + +type v [0]byte + +func f(p **v) { + C.F((**C.v)(unsafe.Pointer(p))) // ERROR HERE +} + +func main() { + var p *v + f(&p) +} |
