golang issue51101 代码
文件路径:/test/fixedbugs/issue51101.go
/ 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.
/ Issue 51101: on RISCV64, difference of two pointers
/ was marked as pointer and crashes GC.
package main
var a, b int
func main() {
F(&b, &a)
}
/go:noinline
func F(a, b *int) bool {
x := a == b
G(x)
y := a != b
return y
}
/go:noinline
func G(bool) {
grow([1000]int{20})
}
func grow(x [1000]int) {
if x[0] != 0 {
x[0]--
grow(x)
}
}