aboutsummaryrefslogtreecommitdiff
path: root/test/unsafe_slice_data.go
diff options
context:
space:
mode:
authorcuiweixie <cuiweixie@gmail.com>2022-08-16 17:52:13 +0800
committerMatthew Dempsky <mdempsky@google.com>2022-08-31 17:15:15 +0000
commitc7085329367e14f0aa828a3793cf66d9f82f05c2 (patch)
tree94f2e9ae0cfc74e1b3cd477480f718a2bd4b6814 /test/unsafe_slice_data.go
parent301ca7513f427f6511fb67cc0385151403cd1729 (diff)
downloadgo-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.go22
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)))
+ }
+}