Commit c69d54e7 authored by Ken Thompson's avatar Ken Thompson

bug28

fix code generation bug in
second index of string slice.

SVN=114255
parent 0b62cb61
......@@ -245,7 +245,7 @@ void
cgen(Node *n)
{
long lno;
Node *nl, *nr, *r, *r1;
Node *nl, *nr, *r;
int a;
Prog *p1, *p2, *p3;
......@@ -358,21 +358,14 @@ cgen(Node *n)
break;
case OSLICE:
nl = n->left;
nl = n->left; // name
nr = n->right;
r = nr->left;
if(usesptr(nr->left)) {
cgen(nr->left);
r = tempname(nr->left->type);
gopcodet(PSTORE, nr->left->type, r);
}
r1 = nr->right;
if(!nr->right->addable) {
cgen(nr->right);
r1 = tempname(nr->right->type);
gopcodet(PSTORE, nr->right->type, r1);
r = nr->right; // index2
if(!r->addable) {
cgen(r);
r = tempname(r->type);
gopcodet(PSTORE, r->type, r);
}
// string into PTADDR
......@@ -385,8 +378,8 @@ cgen(Node *n)
// offset in int reg
cgen(nr->left);
// len addressed
gopcodet(PSLICE, nr->left->type, nr->right);
// index 2 addressed
gopcodet(PSLICE, r->type, r);
break;
case OINDEXPTR:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment