Repository: go
Issue: runtime: data race on stack object when using arena on darwin arm64
Labels: RaceDetector,NeedsInvestigation,arch-arm64,compiler/runtime

<!-- Please answer these questions before submitting your issue. Thanks! -->

### What version of Go are you using (`go version`)?

<pre>
$ go version
go version go1.21rc4 darwin/arm64
</pre>

### Does this issue reproduce with the latest release?
Yes

### What operating system and processor architecture are you using (`go env`)?

<details><summary><code>go env</code> Output</summary><br><pre>
$ go env
GO111MODULE=''
GOARCH='arm64'
GOBIN=''
GOCACHE='/Users/r/Library/Caches/go-build'
GOENV='/Users/r/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='arm64'
GOHOSTOS='darwin'
GOINSECURE='catdb.io'
GOMODCACHE='/Users/r/go/pkg/mod'
GONOPROXY='catdb.io'
GONOSUMDB='catdb.io'
GOOS='darwin'
GOPATH='/Users/r/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/Users/r/sdk/go1.21rc4'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/Users/r/sdk/go1.21rc4/pkg/tool/darwin_arm64'
GOVCS=''
GOVERSION='go1.21rc4'
GCCGO='gccgo'
AR='ar'
CC='clang'
CXX='clang++'
CGO_ENABLED='1'
GOMOD='/dev/null'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/j_/rq9ph2cd3h50w468sgv34lwh0000gn/T/go-build3636825793=/tmp/go-build -gno-record-gcc-switches -fno-common'
GOROOT/bin/go version: go version go1.21rc4 darwin/arm64
GOROOT/bin/go tool compile -V: compile version go1.21rc4
uname -v: Darwin Kernel Version 22.4.0: Mon Mar  6 20:59:28 PST 2023; root:xnu-8796.101.5~3/RELEASE_ARM64_T6000
ProductName:		macOS
ProductVersion:		13.3.1
ProductVersionExtra:	(a)
BuildVersion:		22E772610a
lldb --version: lldb-1403.0.17.67
Apple Swift version 5.8.1 (swiftlang-5.8.0.124.5 clang-1403.0.22.11.100)
</pre></details>

### What did you do?

test7.go:

```golang
package main

import (
	"arena"
	"sync"
)

const N = 200
const M = 2000000

func run() {
	for {
		arn := arena.NewArena()
		var wg sync.WaitGroup
		for i := 0; i < 2000; i++ {
			wg.Add(1)
			go func(i int) {
				defer wg.Done()
				process(0)
			}(i % 15)
			if i%2 == 0 {
				arena.MakeSlice[*int](arn, M/8, M/8)
			} else {
				s := make([]*int, i)
				_ = s
			}
		}
		wg.Wait()
		arn.Free()
	}
}

//go:noinline
func fill(a *[N]int) {
	for i := range a {
		a[i] = i
	}
}

func process(k int) int {
	var a [N]int
	fill(&a)
	if k > 10 {
		return 0
	}
	return process(k + 1)
}

func main() {
	for i := 0; i < 10; i++ {
		go run()
	}
	run()
}
```

run with race:
```bash
GOEXPERIMENT=arenas  go1.21rc4 run -race test7.go
```

### What did you expect to see?
No race.


### What did you see instead?
```
==================
WARNING: DATA RACE
Write at 0x00e400013918 by goroutine 146912:
  main.fill()
      /Users/r/workspace/testcode/testarena/test7.go:36 +0x40
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:42 +0x44
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.run.func1()
      /Users/r/workspace/testcode/testarena/test7.go:19 +0x5c
  main.run.func2()
      /Users/r/workspace/testcode/testarena/test7.go:20 +0x44

Previous write at 0x00e400013918 by goroutine 146908:
  main.fill()
      /Users/r/workspace/testcode/testarena/test7.go:36 +0x40
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:42 +0x44
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.process()
      /Users/r/workspace/testcode/testarena/test7.go:46 +0x6c
  main.run.func1()
      /Users/r/workspace/testcode/testarena/test7.go:19 +0x5c
  main.run.func2()
      /Users/r/workspace/testcode/testarena/test7.go:20 +0x44

Goroutine 146912 (running) created at:
  main.run()
      /Users/r/workspace/testcode/testarena/test7.go:17 +0x1a8

Goroutine 146908 (finished) created at:
  main.run()
      /Users/r/workspace/testcode/testarena/test7.go:17 +0x1a8
==================
```