1
0
mirror of https://github.com/golang/go synced 2024-09-23 11:10:12 -06:00

misc/cgo/test: fix vet error

Vet's cgocall check fails on misc/cgo/test with "possibly passing Go
type with embedded pointer to C". This error is confusing, but the
cgocall check is looking for passing pointers to Go slices to C, which
is exactly what this test is doing. Normally we don't notice this
because vet doesn't run on misc, but we're about to move this test to
cmd/cgo/internal, where vet will start failing.

I'm not sure why we're passing a pointer to a slice here. It's
important that we call a C function with an unsafe.Pointer to memory
containing a pointer to test #25941 and that the result is this call
is then passed to another C function for #28540. This CL maintains
these two properties without the use of a slice.

For #37486.

Change-Id: I672a3c35931a59f99363050498d6f0c80fb6cd98
Reviewed-on: https://go-review.googlesource.com/c/go/+/493137
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
This commit is contained in:
Austin Clements 2023-05-05 21:38:02 -04:00
parent bf6c55a8b3
commit a76b073712

View File

@ -2116,7 +2116,7 @@ func test27660(t *testing.T) {
// issue 28540
func twoargsF() {
v := []string{}
var v struct{ p *byte }
C.twoargs1(C.twoargs2(), C.twoargs3(unsafe.Pointer(&v)))
}