diff options
author | Ken Thompson <ken@golang.org> | 2008-12-09 13:00:50 -0800 |
---|---|---|
committer | Ken Thompson <ken@golang.org> | 2008-12-09 13:00:50 -0800 |
commit | 89d072f29afc9e0f6aede75c0f9906789b43d18f (patch) | |
tree | 70629f6809b7d3c45fba3a377917fa078a66b838 | |
parent | 2a6a6a917ab745ffc5c916213e8339f642212b80 (diff) | |
download | golang-89d072f29afc9e0f6aede75c0f9906789b43d18f.tar.gz |
robs bug converting unsafe.pointer
R=r
OCL=20834
CL=20834
-rw-r--r-- | src/cmd/gc/go.h | 1 | ||||
-rw-r--r-- | src/cmd/gc/subr.c | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/cmd/gc/go.h b/src/cmd/gc/go.h index dc6de63c6..775a4cca1 100644 --- a/src/cmd/gc/go.h +++ b/src/cmd/gc/go.h @@ -156,6 +156,7 @@ struct Type uchar embedded; // TFIELD embedded type uchar siggen; uchar funarg; + uchar copyany; // TFUNCT uchar thistuple; diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c index cd2fc4d2d..5638df4b7 100644 --- a/src/cmd/gc/subr.c +++ b/src/cmd/gc/subr.c @@ -1779,6 +1779,8 @@ loop: goto loop; case TANY: + if(!st->copyany) + return 0; *stp = t; break; @@ -1841,6 +1843,11 @@ deep(Type *t) nt = t; // share from here down break; + case TANY: + nt = shallow(t); + nt->copyany = 1; + break; + case TPTR32: case TPTR64: case TCHAN: |