From 9eebdca8a94d3d47f4973371abf1bc10c626892d Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Thu, 9 May 2024 20:02:30 +0000 Subject: [PATCH] runtime: add workaround to "throw" pending resolution of issue #67274 Temporarily mark the function runtime.throw as "go:noinline" for the time being to work around problems introduced by CL 581215. We do not ordinarily inline runtime.throw unless the build is beind done with an elevated inline budget (e.g. "-gcflags=-l=4"), so this change should only have an effect for those special builds. Updates #67274. Change-Id: I3811913b8d441e0ddb1d4c7d7297ef23555582a2 Reviewed-on: https://go-review.googlesource.com/c/go/+/584616 Reviewed-by: Alan Donovan Auto-Submit: Than McIntosh LUCI-TryBot-Result: Go LUCI Reviewed-by: Mauri de Souza Meneguzzo --- src/runtime/panic.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/runtime/panic.go b/src/runtime/panic.go index 27fcf73ff4..122fc30df2 100644 --- a/src/runtime/panic.go +++ b/src/runtime/panic.go @@ -1010,7 +1010,11 @@ func sync_fatal(s string) { // throw should be used for runtime-internal fatal errors where Go itself, // rather than user code, may be at fault for the failure. // +// NOTE: temporarily marked "go:noinline" pending investigation/fix of +// issue #67274, so as to fix longtest builders. +// //go:nosplit +//go:noinline func throw(s string) { // Everything throw does should be recursively nosplit so it // can be called even when it's unsafe to grow the stack. -- 2.48.1