diff options
author | cuiweixie <cuiweixie@gmail.com> | 2022-08-16 17:52:13 +0800 |
---|---|---|
committer | Matthew Dempsky <mdempsky@google.com> | 2022-08-31 17:15:15 +0000 |
commit | c7085329367e14f0aa828a3793cf66d9f82f05c2 (patch) | |
tree | 94f2e9ae0cfc74e1b3cd477480f718a2bd4b6814 /test/unsafe_slice_data.go | |
parent | 301ca7513f427f6511fb67cc0385151403cd1729 (diff) | |
download | go-c7085329367e14f0aa828a3793cf66d9f82f05c2.tar.gz go-c7085329367e14f0aa828a3793cf66d9f82f05c2.zip |
cmd/compile: add support for unsafe.{String,StringData,SliceData}
For #53003
Change-Id: I13a761daca8b433b271a1feb711c103d9820772d
Reviewed-on: https://go-review.googlesource.com/c/go/+/423774
Reviewed-by: Heschi Kreinick <heschi@google.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: hopehook <hopehook@golangcn.org>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
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 0000000000..e8b8207547 --- /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))) + } +} |