mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
reflect: use cgo.Incomplete instead of go:notinheap in tests
go:notinheap will be replaced by runtime/internal/sys.NotInHeap, and for longer term, we want to restrict all of its usages inside the runtime package only. Updates #46731 Change-Id: I267adc2a19f0dc8a1ed29b5b4aeec1a7dc7318d5 Reviewed-on: https://go-review.googlesource.com/c/go/+/421880 Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Keith Randall <khr@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
bd56cb90a7
commit
ee0e40aaef
4 changed files with 43 additions and 27 deletions
|
|
@ -8003,28 +8003,6 @@ func TestSetIter(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
//go:notinheap
|
||||
type nih struct{ x int }
|
||||
|
||||
var global_nih = nih{x: 7}
|
||||
|
||||
func TestNotInHeapDeref(t *testing.T) {
|
||||
// See issue 48399.
|
||||
v := ValueOf((*nih)(nil))
|
||||
v.Elem()
|
||||
shouldPanic("reflect: call of reflect.Value.Field on zero Value", func() { v.Elem().Field(0) })
|
||||
|
||||
v = ValueOf(&global_nih)
|
||||
if got := v.Elem().Field(0).Int(); got != 7 {
|
||||
t.Fatalf("got %d, want 7", got)
|
||||
}
|
||||
|
||||
v = ValueOf((*nih)(unsafe.Pointer(new(int))))
|
||||
shouldPanic("reflect: reflect.Value.Elem on an invalid notinheap pointer", func() { v.Elem() })
|
||||
shouldPanic("reflect: reflect.Value.Pointer on an invalid notinheap pointer", func() { v.Pointer() })
|
||||
shouldPanic("reflect: reflect.Value.UnsafePointer on an invalid notinheap pointer", func() { v.UnsafePointer() })
|
||||
}
|
||||
|
||||
func TestMethodCallValueCodePtr(t *testing.T) {
|
||||
m := ValueOf(Point{}).Method(1)
|
||||
want := MethodValueCallCodePtr()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue