From: Austin Clements Date: Sat, 6 May 2023 01:38:02 +0000 (-0400) Subject: misc/cgo/test: fix vet error X-Git-Tag: go1.21rc1~565 X-Git-Url: http://www.git.cypherpunks.ru/?a=commitdiff_plain;h=a76b073712343328a6da1daa597ddfe68d543f32;p=gostls13.git 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 Run-TryBot: Austin Clements Reviewed-by: Ian Lance Taylor --- diff --git a/misc/cgo/test/test.go b/misc/cgo/test/test.go index 9d9b14ee74..1529ca5928 100644 --- a/misc/cgo/test/test.go +++ b/misc/cgo/test/test.go @@ -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))) }