]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/gc: add missing dupok flag for interface method wrappers.
authorRémy Oudompheng <oudomphe@phare.normalesup.org>
Tue, 7 Jan 2014 17:25:11 +0000 (18:25 +0100)
committerRémy Oudompheng <oudomphe@phare.normalesup.org>
Tue, 7 Jan 2014 17:25:11 +0000 (18:25 +0100)
R=rsc
CC=golang-codereviews
https://golang.org/cl/48420044

src/cmd/gc/subr.c

index f8e321c9627545fc4b75a51c8353994844c19de4..779580295f19714e549a707f038edc7a7f8b34c1 100644 (file)
@@ -2591,8 +2591,10 @@ genwrapper(Type *rcvr, Type *method, Sym *newnam, int iface)
 
        funcbody(fn);
        curfn = fn;
-       // wrappers where T is anonymous (struct{ NamedType }) can be duplicated.
-       if(rcvr->etype == TSTRUCT || isptr[rcvr->etype] && rcvr->type->etype == TSTRUCT)
+       // wrappers where T is anonymous (struct or interface) can be duplicated.
+       if(rcvr->etype == TSTRUCT ||
+               rcvr->etype == TINTER ||
+               isptr[rcvr->etype] && rcvr->type->etype == TSTRUCT)
                fn->dupok = 1;
        typecheck(&fn, Etop);
        typechecklist(fn->nbody, Etop);