diff options
| author | Ondřej Surý <ondrej@sury.org> | 2011-09-13 13:13:44 +0200 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2011-09-13 13:13:44 +0200 |
| commit | 9464a0c36318f8a801c07d6874bd0cea40f12504 (patch) | |
| tree | f0178491c19d4f1ebc7b92eede86690998466480 /src/cmd/6g/cgen.c | |
| parent | ba9fda6068cfadd42db0b152fdca7e8b67aaf77d (diff) | |
| parent | 5ff4c17907d5b19510a62e08fd8d3b11e62b431d (diff) | |
| download | golang-9464a0c36318f8a801c07d6874bd0cea40f12504.tar.gz | |
Merge commit 'upstream/60' into debian-sid
Diffstat (limited to 'src/cmd/6g/cgen.c')
| -rw-r--r-- | src/cmd/6g/cgen.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/cmd/6g/cgen.c b/src/cmd/6g/cgen.c index fca4b64dd..24f88a416 100644 --- a/src/cmd/6g/cgen.c +++ b/src/cmd/6g/cgen.c @@ -510,9 +510,6 @@ agen(Node *n, Node *res) regfree(&n4); } - if(w == 0) - fatal("index is zero width"); - // constant index if(isconst(nr, CTINT)) { if(isconst(nl, CTSTR)) @@ -600,7 +597,9 @@ agen(Node *n, Node *res) gmove(&n1, &n3); } - if(w == 1 || w == 2 || w == 4 || w == 8) { + if(w == 0) { + // nothing to do + } else if(w == 1 || w == 2 || w == 4 || w == 8) { p1 = gins(ALEAQ, &n2, &n3); p1->from.scale = w; p1->from.index = p1->from.type; @@ -608,7 +607,6 @@ agen(Node *n, Node *res) } else { ginscon(optoas(OMUL, t), w, &n2); gins(optoas(OADD, types[tptr]), &n2, &n3); - gmove(&n3, res); } indexdone: |
