diff options
Diffstat (limited to 'src/pkg/runtime/panic.c')
| -rw-r--r-- | src/pkg/runtime/panic.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/pkg/runtime/panic.c b/src/pkg/runtime/panic.c index 8d7d261faf..120f7706e7 100644 --- a/src/pkg/runtime/panic.c +++ b/src/pkg/runtime/panic.c @@ -156,9 +156,14 @@ 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. #pragma textflag 7 void -runtimeĀ·deferreturn(uintptr arg0) +runtimeĀ·deferreturn(uintptr arg0, ...) { Defer *d; byte *argp; |
