]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/gc: do not mark PC as pointer on stack
authorDmitriy Vyukov <dvyukov@google.com>
Sun, 20 Jul 2014 14:52:46 +0000 (18:52 +0400)
committerDmitriy Vyukov <dvyukov@google.com>
Sun, 20 Jul 2014 14:52:46 +0000 (18:52 +0400)
GC thinks that it's an invalid pointer on plan9:
http://build.golang.org/log/f7da638a20544ef7f45e81f23fdbc4875044c296

LGTM=0intro
R=golang-codereviews, 0intro
CC=aram, golang-codereviews
https://golang.org/cl/113350043

src/cmd/gc/select.c

index 7346cf5814ac310a6f0c77195f8f0b90693efd18..86313cb2bba7a2f48bd3b5298920ff8ac6743ace 100644 (file)
@@ -347,7 +347,7 @@ selecttype(int32 size)
        scase = nod(OTSTRUCT, N, N);
        scase->list = list(scase->list, nod(ODCLFIELD, newname(lookup("sg")), sudog));
        scase->list = list(scase->list, nod(ODCLFIELD, newname(lookup("chan")), typenod(ptrto(types[TUINT8]))));
-       scase->list = list(scase->list, nod(ODCLFIELD, newname(lookup("pc")), typenod(ptrto(types[TUINT8]))));
+       scase->list = list(scase->list, nod(ODCLFIELD, newname(lookup("pc")), typenod(types[TUINTPTR])));
        scase->list = list(scase->list, nod(ODCLFIELD, newname(lookup("kind")), typenod(types[TUINT16])));
        scase->list = list(scase->list, nod(ODCLFIELD, newname(lookup("so")), typenod(types[TUINT16])));
        scase->list = list(scase->list, nod(ODCLFIELD, newname(lookup("receivedp")), typenod(ptrto(types[TUINT8]))));