diff options
author | Fabricio Voznika <fvoznika@google.com> | 2019-05-30 12:01:41 -0700 |
---|---|---|
committer | Shentubot <shentubot@google.com> | 2019-05-30 12:09:39 -0700 |
commit | 38de91b028639ef5f4a4c8874b3ee23503fd2f3a (patch) | |
tree | 8d58a49107c491688a89c805336690ca493bf008 /third_party/gvsync/memmove_unsafe.go | |
parent | e3c5fa3345139a38b380e14067640931ce885288 (diff) |
Add build guard to files using go:linkname
Funcion signatures are not validated during compilation. Since
they are not exported, they can change at any time. The guard
ensures that they are verified at least on every version upgrade.
PiperOrigin-RevId: 250733742
Diffstat (limited to 'third_party/gvsync/memmove_unsafe.go')
-rw-r--r-- | third_party/gvsync/memmove_unsafe.go | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/third_party/gvsync/memmove_unsafe.go b/third_party/gvsync/memmove_unsafe.go index 4c8aa9ab6..84b69f215 100644 --- a/third_party/gvsync/memmove_unsafe.go +++ b/third_party/gvsync/memmove_unsafe.go @@ -3,12 +3,21 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// +build go1.12 +// +build !go1.14 + +// Check go:linkname function signatures when updating Go version. + package gvsync import ( "unsafe" ) +//go:linkname memmove runtime.memmove +//go:noescape +func memmove(to, from unsafe.Pointer, n uintptr) + // Memmove is exported for SeqAtomicLoad/SeqAtomicTryLoad<T>, which can't // define it because go_generics can't update the go:linkname annotation. // Furthermore, go:linkname silently doesn't work if the local name is exported @@ -17,7 +26,3 @@ import ( func Memmove(to, from unsafe.Pointer, n uintptr) { memmove(to, from, n) } - -//go:linkname memmove runtime.memmove -//go:noescape -func memmove(to, from unsafe.Pointer, n uintptr) |