mirror of
https://github.com/golang/go
synced 2024-09-15 22:20:06 +00:00
[dev.typeparams] runtime: crash the GC at clobberdead pointer on ARM64
Extend CL 310330 to ARM64, which now has clobberdead mode implemented in the compiler. Change-Id: I07f6951d81a0797ef7a74e48b79db5cea2bf876b Reviewed-on: https://go-review.googlesource.com/c/go/+/324766 Trust: Cherry Mui <cherryyz@google.com> Run-TryBot: Cherry Mui <cherryyz@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
6b1e4430bb
commit
55b4310acd
|
@ -386,10 +386,10 @@ func findObject(p, refBase, refOff uintptr) (base uintptr, s *mspan, objIndex ui
|
||||||
// If s is nil, the virtual address has never been part of the heap.
|
// If s is nil, the virtual address has never been part of the heap.
|
||||||
// This pointer may be to some mmap'd region, so we allow it.
|
// This pointer may be to some mmap'd region, so we allow it.
|
||||||
if s == nil {
|
if s == nil {
|
||||||
if GOARCH == "amd64" && p == clobberdeadPtr && debug.invalidptr != 0 {
|
if (GOARCH == "amd64" || GOARCH == "arm64") && p == clobberdeadPtr && debug.invalidptr != 0 {
|
||||||
// Crash if clobberdeadPtr is seen. Only on AMD64 for now, as
|
// Crash if clobberdeadPtr is seen. Only on AMD64 and ARM64 for now,
|
||||||
// it is the only platform where compiler's clobberdead mode is
|
// as they are the only platform where compiler's clobberdead mode is
|
||||||
// implemented. On AMD64 clobberdeadPtr cannot be a valid address.
|
// implemented. On these platforms clobberdeadPtr cannot be a valid address.
|
||||||
badPointer(s, p, refBase, refOff)
|
badPointer(s, p, refBase, refOff)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in a new issue