aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2013-12-02 13:07:15 -0800
committerKeith Randall <khr@golang.org>2013-12-02 13:07:15 -0800
commitc792bde9eff10869a503910f9c14ea24047ecafa (patch)
tree48b5cd61b2347d54613d9977362f44b756781c7c /src/pkg/runtime
parent3278dc158e34779eb46cd1b5a73c1d0c18602184 (diff)
downloadgo-c792bde9eff10869a503910f9c14ea24047ecafa.tar.xz
runtime: don't use ... formal argument to deferreturn.
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/28860043
Diffstat (limited to 'src/pkg/runtime')
-rw-r--r--src/pkg/runtime/panic.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/pkg/runtime/panic.c b/src/pkg/runtime/panic.c
index 8227a444d3..b60547ea10 100644
--- a/src/pkg/runtime/panic.c
+++ b/src/pkg/runtime/panic.c
@@ -157,14 +157,12 @@ runtimeĀ·deferproc(int32 siz, FuncVal *fn, ...)
// is called again and again until there are no more deferred functions.
// Cannot split the stack because we reuse the caller's frame to
// call the deferred function.
-//
-// The ... in the prototype keeps the compiler from declaring
-// an argument frame size. deferreturn is a very special function,
-// and if the runtime ever asks for its frame size, that means
-// the traceback routines are probably broken.
+
+// The single argument isn't actually used - it just has its address
+// taken so it can be matched against pending defers.
#pragma textflag NOSPLIT
void
-runtimeĀ·deferreturn(uintptr arg0, ...)
+runtimeĀ·deferreturn(uintptr arg0)
{
Defer *d;
byte *argp;