diff options
Diffstat (limited to 'test/unsafe_slice_data.go')
-rw-r--r-- | test/unsafe_slice_data.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/unsafe_slice_data.go b/test/unsafe_slice_data.go new file mode 100644 index 0000000..e8b8207 --- /dev/null +++ b/test/unsafe_slice_data.go @@ -0,0 +1,22 @@ +// run + +// Copyright 2022 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 + +import ( + "fmt" + "reflect" + "unsafe" +) + +func main() { + var s = []byte("abc") + sh1 := *(*reflect.SliceHeader)(unsafe.Pointer(&s)) + ptr2 := unsafe.Pointer(unsafe.SliceData(s)) + if ptr2 != unsafe.Pointer(sh1.Data) { + panic(fmt.Errorf("unsafe.SliceData %p != %p", ptr2, unsafe.Pointer(sh1.Data))) + } +} |