From c7085329367e14f0aa828a3793cf66d9f82f05c2 Mon Sep 17 00:00:00 2001 From: cuiweixie Date: Tue, 16 Aug 2022 17:52:13 +0800 Subject: 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 Reviewed-by: Matthew Dempsky Reviewed-by: hopehook Reviewed-by: Cuong Manh Le Reviewed-by: Keith Randall Run-TryBot: Matthew Dempsky TryBot-Result: Gopher Robot --- src/runtime/testdata/testprog/checkptr.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/runtime/testdata/testprog') diff --git a/src/runtime/testdata/testprog/checkptr.go b/src/runtime/testdata/testprog/checkptr.go index b27e5f74f8..60e71e66d7 100644 --- a/src/runtime/testdata/testprog/checkptr.go +++ b/src/runtime/testdata/testprog/checkptr.go @@ -20,6 +20,8 @@ func init() { register("CheckPtrSmall", CheckPtrSmall) register("CheckPtrSliceOK", CheckPtrSliceOK) register("CheckPtrSliceFail", CheckPtrSliceFail) + register("CheckPtrStringOK", CheckPtrStringOK) + register("CheckPtrStringFail", CheckPtrStringFail) register("CheckPtrAlignmentNested", CheckPtrAlignmentNested) } @@ -98,6 +100,17 @@ func CheckPtrSliceFail() { sink2 = unsafe.Slice(p, 100) } +func CheckPtrStringOK() { + p := new([4]byte) + sink2 = unsafe.String(&p[1], 3) +} + +func CheckPtrStringFail() { + p := new(byte) + sink2 = p + sink2 = unsafe.String(p, 100) +} + func CheckPtrAlignmentNested() { s := make([]int8, 100) p := unsafe.Pointer(&s[0]) -- cgit v1.3-5-g9baa