diff options
| author | Ondřej Surý <ondrej@sury.org> | 2012-06-14 13:23:46 +0200 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2012-06-14 13:23:46 +0200 |
| commit | 917c5fb8ec48e22459d77e3849e6d388f93d3260 (patch) | |
| tree | 9c23734a6ffd4d2a8ac99502eda3cc812a8b130b /src/cmd/gc/range.c | |
| parent | 0003ee229fd33ff46cb5f2fe1e35f5c0284debc4 (diff) | |
| download | golang-917c5fb8ec48e22459d77e3849e6d388f93d3260.tar.gz | |
Imported Upstream version 1.0.2upstream/1.0.2
Diffstat (limited to 'src/cmd/gc/range.c')
| -rw-r--r-- | src/cmd/gc/range.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/cmd/gc/range.c b/src/cmd/gc/range.c index 9bcd833a7..d301e4e4f 100644 --- a/src/cmd/gc/range.c +++ b/src/cmd/gc/range.c @@ -152,9 +152,14 @@ walkrange(Node *n) n->ntest = nod(OLT, hv1, hn); n->nincr = nod(OASOP, hv1, nodintconst(1)); n->nincr->etype = OADD; - body = list1(nod(OAS, v1, hv1)); - if(v2) { - body = list(body, nod(OAS, v2, nod(OIND, hp, N))); + if(v2 == N) + body = list1(nod(OAS, v1, hv1)); + else { + a = nod(OAS2, N, N); + a->list = list(list1(v1), v2); + a->rlist = list(list1(hv1), nod(OIND, hp, N)); + body = list1(a); + tmp = nod(OADD, hp, nodintconst(t->type->width)); tmp->type = hp->type; tmp->typecheck = 1; |
