Golang程序  |  27行  |  526 B

// 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)
}