aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/stack.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-10-29 11:54:48 -0400
committerRuss Cox <rsc@golang.org>2014-10-29 11:54:48 -0400
commit8e171e196615bc40a3a804811acf768eee6b2aa8 (patch)
tree843fd3e672b94483e5684f537518b544124486d0 /src/runtime/stack.c
parent5550249ad3030e563ba810f3c30a1ba6b01f448c (diff)
parent3bbc8638d5dd2564b3c60a603c094c0e570bd301 (diff)
downloadgo-8e171e196615bc40a3a804811acf768eee6b2aa8.tar.xz
[dev.garbage] all: merge default (dd5014ed9b01) into dev.garbage
LGTM=rlh R=rlh CC=golang-codereviews https://golang.org/cl/170730043
Diffstat (limited to 'src/runtime/stack.c')
-rw-r--r--src/runtime/stack.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/runtime/stack.c b/src/runtime/stack.c
index e06e48a93d..f18171ea5c 100644
--- a/src/runtime/stack.c
+++ b/src/runtime/stack.c
@@ -401,12 +401,12 @@ adjustpointers(byte **scanp, BitVector *bv, AdjustInfo *adjinfo, Func *f)
break;
case BitsPointer:
p = scanp[i];
- if(f != nil && (byte*)0 < p && (p < (byte*)PageSize || (uintptr)p == PoisonGC || (uintptr)p == PoisonStack)) {
+ if(f != nil && (byte*)0 < p && (p < (byte*)PageSize && runtime·invalidptr || (uintptr)p == PoisonGC || (uintptr)p == PoisonStack)) {
// Looks like a junk value in a pointer slot.
// Live analysis wrong?
g->m->traceback = 2;
runtime·printf("runtime: bad pointer in frame %s at %p: %p\n", runtime·funcname(f), &scanp[i], p);
- runtime·throw("bad pointer!");
+ runtime·throw("invalid stack pointer");
}
if(minp <= p && p < maxp) {
if(StackDebug >= 3)