cmd/compile: disable checkptr for //go:cgo_unsafe_args functions

Fixes #34968.

Change-Id: I538d653fab6cf7cf9b9b7022a1c2d4ae6ee497b6
Reviewed-on: https://go-review.googlesource.com/c/go/+/201823
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Matthew Dempsky 2019-10-17 13:58:27 -07:00
parent ab81efa3dc
commit 8c6876e9a4
2 changed files with 16 additions and 1 deletions

View file

@ -75,7 +75,7 @@ func pragmaValue(verb string) syntax.Pragma {
case "go:yeswritebarrierrec":
return Yeswritebarrierrec
case "go:cgo_unsafe_args":
return CgoUnsafeArgs
return CgoUnsafeArgs | NoCheckPtr // implies NoCheckPtr (see #34968)
case "go:uintptrescapes":
// For the next function declared in the file
// any uintptr arguments may be pointer values

View file

@ -0,0 +1,15 @@
// +build cgo
// run -gcflags=all=-d=checkptr
// Copyright 2019 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.
package main
// #include <stdlib.h>
import "C"
func main() {
C.malloc(100)
}