test: fix nosplit test for noopt build
Noopt builds get a larger stack guard. This test must take that into account.
Change-Id: I1b5cbafdbbfee8c369ae1bebd0b900524ebf0d7d
Reviewed-on: https://go-review.googlesource.com/9610
Reviewed-by: Russ Cox <rsc@golang.org>
diff --git a/test/nosplit.go b/test/nosplit.go
index bd4e60b..bd7a8dd 100644
--- a/test/nosplit.go
+++ b/test/nosplit.go
@@ -292,9 +292,16 @@
// The limit was originally 128 but is now 512.
// Instead of rewriting the test cases above, adjust
- // the first stack frame to use up the extra 32 bytes.
+ // the first stack frame to use up the extra bytes.
if i == 0 {
size += 512 - 128
+ // Noopt builds have a larger stackguard.
+ // See ../cmd/dist/buildruntime.go:stackGuardMultiplier
+ for _, s := range strings.Split(os.Getenv("GO_GCFLAGS"), " ") {
+ if s == "-N" {
+ size += 640
+ }
+ }
}
if size%ptrSize == 4 {