From: Russ Cox Date: Thu, 8 Jan 2009 23:01:22 +0000 (-0800) Subject: fix: X-Git-Tag: weekly.2009-11-06~2408 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=1b7881adb4715e337375ae3a2668237c569ff946;p=gostls13.git fix: type T []int var a []int var t = T(a) R=ken OCL=22341 CL=22341 --- diff --git a/src/cmd/6g/cgen.c b/src/cmd/6g/cgen.c index 0ab1be5c10..228916417f 100644 --- a/src/cmd/6g/cgen.c +++ b/src/cmd/6g/cgen.c @@ -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); diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c index e0eb648175..cfc3154fdf 100644 --- a/src/cmd/gc/walk.c +++ b/src/cmd/gc/walk.c @@ -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; }