diff options
Diffstat (limited to 'src/runtime/panic.c')
-rw-r--r-- | src/runtime/panic.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/runtime/panic.c b/src/runtime/panic.c index 1cd0aa865..24eb6dbfe 100644 --- a/src/runtime/panic.c +++ b/src/runtime/panic.c @@ -31,8 +31,11 @@ runtime·deferproc_m(void) argp = g->m->scalararg[1]; callerpc = g->m->scalararg[2]; g->m->ptrarg[0] = nil; + g->m->scalararg[1] = 0; d = runtime·newdefer(siz); + if(d->panic != nil) + runtime·throw("deferproc: d->panic != nil after newdefer"); d->fn = fn; d->pc = callerpc; d->argp = argp; @@ -131,6 +134,7 @@ runtime·dopanic_m(void) g->m->ptrarg[0] = nil; pc = g->m->scalararg[0]; sp = g->m->scalararg[1]; + g->m->scalararg[1] = 0; if(gp->sig != 0) runtime·printf("[signal %x code=%p addr=%p pc=%p]\n", gp->sig, gp->sigcode0, gp->sigcode1, gp->sigpc); |