]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: document that nosplit directive is unsafe
authorIan Lance Taylor <iant@golang.org>
Mon, 7 Jul 2025 20:01:34 +0000 (13:01 -0700)
committerGopher Robot <gobot@golang.org>
Tue, 8 Jul 2025 15:04:03 +0000 (08:04 -0700)
For #74478

Change-Id: I902e9a92cdacb5ad6dafa9896640f8196ba1d56a
Reviewed-on: https://go-review.googlesource.com/c/go/+/686115
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@golang.org>
Auto-Submit: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
src/cmd/compile/doc.go

index f76f402f382802287151d0dac72e3ea6f92e83e3..81e6189a262381680beb16b91f28f2a5a1227a9a 100644 (file)
@@ -253,6 +253,9 @@ The //go:nosplit directive must be followed by a function declaration.
 It specifies that the function must omit its usual stack overflow check.
 This is most commonly used by low-level runtime code invoked
 at times when it is unsafe for the calling goroutine to be preempted.
+Using this directive outside of low-level runtime code is not safe,
+because it permits the nosplit function to overwrite the end of stack,
+leading to memory corruption and arbitrary program failure.
 
 # Linkname Directive