]> Cypherpunks repositories - gostls13.git/commitdiff
robs bug converting unsafe.pointer
authorKen Thompson <ken@golang.org>
Tue, 9 Dec 2008 21:00:50 +0000 (13:00 -0800)
committerKen Thompson <ken@golang.org>
Tue, 9 Dec 2008 21:00:50 +0000 (13:00 -0800)
R=r
OCL=20834
CL=20834

src/cmd/gc/go.h
src/cmd/gc/subr.c

index dc6de63c6c6579a74067655c7766795e5c0dc594..775a4cca12d46dd383b439af277b50fc988f5f3f 100644 (file)
@@ -156,6 +156,7 @@ struct      Type
        uchar   embedded;       // TFIELD embedded type
        uchar   siggen;
        uchar   funarg;
+       uchar   copyany;
 
        // TFUNCT
        uchar   thistuple;
index cd2fc4d2d53440a78e0cafe804c08b872b633a60..5638df4b7ddec8e9c9e697a1436eb2c15f351fff 100644 (file)
@@ -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: