From 9ff034fcff8ccab6eb82bf2cd36e2d24b2df9b78 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 27 Mar 2024 11:44:42 -0700 Subject: [PATCH] gcc/testsuite/go.test: update issue16016 This backports https://go.dev/cl/574536 into the GCC testsuite. Fixes PR go/114453 --- .../go.test/test/fixedbugs/issue16016.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/go.test/test/fixedbugs/issue16016.go b/gcc/testsuite/go.test/test/fixedbugs/issue16016.go index e738e1dba0e9..b1947f5548de 100644 --- a/gcc/testsuite/go.test/test/fixedbugs/issue16016.go +++ b/gcc/testsuite/go.test/test/fixedbugs/issue16016.go @@ -6,7 +6,10 @@ package main -import "time" +import ( + "runtime" + "time" +) type T struct{} @@ -24,8 +27,19 @@ type Q interface { } func main() { + var count = 10000 + if runtime.Compiler == "gccgo" { + // On targets without split-stack libgo allocates + // a large stack for each goroutine. On 32-bit + // systems this test can run out of memory. + const intSize = 32 << (^uint(0) >> 63) // 32 or 64 + if intSize < 64 { + count = 100 + } + } + var q Q = &R{&T{}} - for i := 0; i < 10000; i++ { + for i := 0; i < count; i++ { go func() { defer q.Foo([]interface{}{"meow"}) time.Sleep(100 * time.Millisecond) -- 2.47.2