// 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) } }