go/src/reflect
Keith Randall 0aa7f8fd4d [release-branch.go1.17] reflect: keep pointer in aggregate-typed args live in Call
When register ABI is used, reflect.Value.Call prepares the call
arguments in a memory representation of the argument registers.
It has special handling to keep the pointers in arguments live.
Currently, this handles pointer-typed arguments. But when an
argument is an aggregate-type that contains pointers and passed
in registers, it currently doesn't keep the pointers live. Do
so in this CL.

Fixes #49961

Change-Id: I9264a8767e2a2c48573f6047144759b845dcf480
Reviewed-on: https://go-review.googlesource.com/c/go/+/369098
Trust: Keith Randall <khr@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2021-12-21 22:57:03 +00:00
..
internal reflect: fix stack overflow panic when using haveIdenticalUnderlyingType 2021-04-20 20:14:14 +00:00
abi.go reflect: keep pointer register results alive in callMethod 2021-04-14 16:37:06 +00:00
abi_test.go reflect: handle stack-to-register translation in callMethod 2021-06-12 00:12:55 +00:00
all_test.go [release-branch.go1.17] reflect: keep pointer in aggregate-typed args live in Call 2021-12-21 22:57:03 +00:00
asm_386.s reflect: add register ABI support for makeFuncStub and methodValueCall 2021-04-02 16:53:18 +00:00
asm_amd64.s reflect: preserve ctxt across moveMakeFuncArgPtrs 2021-04-16 20:18:11 +00:00
asm_arm.s reflect: add register ABI support for makeFuncStub and methodValueCall 2021-04-02 16:53:18 +00:00
asm_arm64.s reflect: add register ABI support for makeFuncStub and methodValueCall 2021-04-02 16:53:18 +00:00
asm_mips64x.s all: add //go:build lines to assembly files 2021-05-13 09:12:17 +00:00
asm_mipsx.s all: add //go:build lines to assembly files 2021-05-13 09:12:17 +00:00
asm_ppc64x.s all: add //go:build lines to assembly files 2021-05-13 09:12:17 +00:00
asm_riscv64.s reflect: add register ABI support for makeFuncStub and methodValueCall 2021-04-02 16:53:18 +00:00
asm_s390x.s reflect: add register ABI support for makeFuncStub and methodValueCall 2021-04-02 16:53:18 +00:00
asm_wasm.s reflect: add register ABI support for makeFuncStub and methodValueCall 2021-04-02 16:53:18 +00:00
deepequal.go cmd/compile, runtime: store pointers to go:notinheap types indirectly 2020-10-27 21:29:13 +00:00
example_test.go
export_test.go reflect: refactor funcLayout tests 2021-04-06 22:55:58 +00:00
makefunc.go reflect: add register ABI support for makeFuncStub and methodValueCall 2021-04-02 16:53:18 +00:00
set_test.go
swapper.go
tostring_test.go
type.go Update oudated comment 2021-07-08 16:59:21 +00:00
value.go [release-branch.go1.17] reflect: keep pointer in aggregate-typed args live in Call 2021-12-21 22:57:03 +00:00
visiblefields.go reflect: add missing copyright header 2021-07-21 20:29:18 +00:00
visiblefields_test.go reflect: add missing copyright header 2021-07-21 20:29:18 +00:00