Source file test/fixedbugs/issue51101.go
1 // run 2 3 // Copyright 2022 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 // Issue 51101: on RISCV64, difference of two pointers 8 // was marked as pointer and crashes GC. 9 10 package main 11 12 var a, b int 13 14 func main() { 15 F(&b, &a) 16 } 17 18 //go:noinline 19 func F(a, b *int) bool { 20 x := a == b 21 G(x) 22 y := a != b 23 return y 24 } 25 26 //go:noinline 27 func G(bool) { 28 grow([1000]int{20}) 29 } 30 31 func grow(x [1000]int) { 32 if x[0] != 0 { 33 x[0]-- 34 grow(x) 35 } 36 } 37