]> Cypherpunks repositories - gostls13.git/commitdiff
fix:
authorRuss Cox <rsc@golang.org>
Thu, 8 Jan 2009 23:01:22 +0000 (15:01 -0800)
committerRuss Cox <rsc@golang.org>
Thu, 8 Jan 2009 23:01:22 +0000 (15:01 -0800)
type T []int
var a []int
var t = T(a)

R=ken
OCL=22341
CL=22341

src/cmd/6g/cgen.c
src/cmd/gc/walk.c

index 0ab1be5c10269f1a314657d638e7b9ad3da9d116..228916417f7756fd9cc79f9e66a8616e0e042294 100644 (file)
@@ -415,6 +415,12 @@ agen(Node *n, Node *res)
                fatal("agen: unknown op %N", n);
                break;
 
+       case OCONV:
+               if(!eqtype(n->type, nl->type, 0))
+                       fatal("agen: non-trivial OCONV");
+               agen(nl, res);
+               return;
+
        case OCALLMETH:
                cgen_callmeth(n, 0);
                cgen_aret(n, res);
index e0eb6481757f2333f627da951272156defaae091..cfc3154fdfd69f04cf30a9a23c0f2d0c65760981 100644 (file)
@@ -563,8 +563,10 @@ loop:
 
                // nil conversion
                if(eqtype(t, l->type, 0)) {
-                       if(l->op != ONAME)
+                       if(l->op != ONAME) {
                                indir(n, l);
+                               n->type = t;
+                       }
                        goto ret;
                }