diff options
| author | Cherry Mui <cherryyz@google.com> | 2025-09-22 10:57:29 -0400 |
|---|---|---|
| committer | Cherry Mui <cherryyz@google.com> | 2025-09-23 08:05:41 -0700 |
| commit | 2b50ffe172ee638a88e2750481eaeeac7d3bedfa (patch) | |
| tree | 4f89092a95e012259057717868b9a45aca92178e /src/runtime/testdata/testprog | |
| parent | 2d8cb80d7c4af3dbcb507783938ceb0e071f64e3 (diff) | |
| download | go-2b50ffe172ee638a88e2750481eaeeac7d3bedfa.tar.xz | |
[dev.simd] cmd/compile: remove stores to unread parameters
Currently, we remove stores to local variables that are not read.
We don't do that for arguments. But arguments and locals are
essentially the same. Arguments are passed by value, and are not
expected to be read in the caller's frame. So we can remove the
writes to them as well. One exception is the cgo_unsafe_arg
directive, which makes all the arguments effectively address-taken.
cgo_unsafe_arg implies ABI0, so we just skip ABI0 functions'
arguments.
Change-Id: I8999fc50da6a87f22c1ec23e9a0c15483b6f7df8
Reviewed-on: https://go-review.googlesource.com/c/go/+/705815
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
Diffstat (limited to 'src/runtime/testdata/testprog')
| -rw-r--r-- | src/runtime/testdata/testprog/badtraceback.go | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/runtime/testdata/testprog/badtraceback.go b/src/runtime/testdata/testprog/badtraceback.go index 09aa2b877e..455118a543 100644 --- a/src/runtime/testdata/testprog/badtraceback.go +++ b/src/runtime/testdata/testprog/badtraceback.go @@ -44,6 +44,8 @@ func badLR2(arg int) { lrPtr := (*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&arg)) - lrOff)) *lrPtr = 0xbad + runtime.KeepAlive(lrPtr) // prevent dead store elimination + // Print a backtrace. This should include diagnostics for the // bad return PC and a hex dump. panic("backtrace") |
