aboutsummaryrefslogtreecommitdiff
path: root/libgo/runtime
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2013-10-14 21:02:52 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2013-10-14 21:02:52 +0000
commit8088e1beb276a0ba33ba2bf499899450d86e9f03 (patch)
tree5847e1daa22295214507c41c69acc9520627c035 /libgo/runtime
parentf637ebc1e8651f77b2f9853c1986b682839706e8 (diff)
downloadgcc-8088e1beb276a0ba33ba2bf499899450d86e9f03.zip
gcc-8088e1beb276a0ba33ba2bf499899450d86e9f03.tar.gz
gcc-8088e1beb276a0ba33ba2bf499899450d86e9f03.tar.bz2
runtime: Don't clobber saved context when catching signal.
From-SVN: r203577
Diffstat (limited to 'libgo/runtime')
-rw-r--r--libgo/runtime/go-signal.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c
index 9771b71..af99dde 100644
--- a/libgo/runtime/go-signal.c
+++ b/libgo/runtime/go-signal.c
@@ -399,6 +399,7 @@ sig_tramp_info (int sig, Siginfo *info, void *context)
{
G *gp;
M *mp;
+ void *stack_context[10];
/* We are now running on the stack registered via sigaltstack.
(Actually there is a small span of time between runtime_siginit
@@ -409,7 +410,7 @@ sig_tramp_info (int sig, Siginfo *info, void *context)
if (gp != NULL)
{
#ifdef USING_SPLIT_STACK
- __splitstack_getcontext (&gp->stack_context[0]);
+ __splitstack_getcontext (&stack_context[0]);
#endif
}
@@ -432,7 +433,7 @@ sig_tramp_info (int sig, Siginfo *info, void *context)
if (gp != NULL)
{
#ifdef USING_SPLIT_STACK
- __splitstack_setcontext (&gp->stack_context[0]);
+ __splitstack_setcontext (&stack_context[0]);
#endif
}
}