aboutsummaryrefslogtreecommitdiff
path: root/libgo
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2016-09-20 16:48:19 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2016-09-20 16:48:19 +0000
commitb276eda4b4e09dc1b8b265a30b41e1493abc3031 (patch)
tree447913c9a5f661ee74180210cd9cb26acd1fd0b5 /libgo
parentc79222478d2eb0ba4bdfbdcdaa1569dcbb72a8e3 (diff)
downloadgcc-b276eda4b4e09dc1b8b265a30b41e1493abc3031.zip
gcc-b276eda4b4e09dc1b8b265a30b41e1493abc3031.tar.gz
gcc-b276eda4b4e09dc1b8b265a30b41e1493abc3031.tar.bz2
re PR go/77642 (GO Bootstrap fail starting with r239872 splitstack signature does not match)
PR go/77642 runtime: pass correct type to __splitstack_find The code was passing uintptr* to a function that expected size_t*. Based on patch by Andreas Krebbel. Fixes GCC PR 77642. Reviewed-on: https://go-review.googlesource.com/29433 From-SVN: r240275
Diffstat (limited to 'libgo')
-rw-r--r--libgo/runtime/proc.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
index 6ac8857..20db789 100644
--- a/libgo/runtime/proc.c
+++ b/libgo/runtime/proc.c
@@ -2052,9 +2052,13 @@ doentersyscall()
// Leave SP around for GC and traceback.
#ifdef USING_SPLIT_STACK
- g->gcstack = __splitstack_find(nil, nil, &g->gcstacksize,
- &g->gcnextsegment, &g->gcnextsp,
- &g->gcinitialsp);
+ {
+ size_t gcstacksize;
+ g->gcstack = __splitstack_find(nil, nil, &gcstacksize,
+ &g->gcnextsegment, &g->gcnextsp,
+ &g->gcinitialsp);
+ g->gcstacksize = (uintptr)gcstacksize;
+ }
#else
{
void *v;
@@ -2099,9 +2103,13 @@ runtime_entersyscallblock(void)
// Leave SP around for GC and traceback.
#ifdef USING_SPLIT_STACK
- g->gcstack = __splitstack_find(nil, nil, &g->gcstacksize,
- &g->gcnextsegment, &g->gcnextsp,
- &g->gcinitialsp);
+ {
+ size_t gcstacksize;
+ g->gcstack = __splitstack_find(nil, nil, &gcstacksize,
+ &g->gcnextsegment, &g->gcnextsp,
+ &g->gcinitialsp);
+ g->gcstacksize = (uintptr)gcstacksize;
+ }
#else
g->gcnextsp = (byte *) &p;
#endif