diff --git a/source/compiler/sc1.c b/source/compiler/sc1.c index 534a3b8..de6496e 100644 --- a/source/compiler/sc1.c +++ b/source/compiler/sc1.c @@ -2334,18 +2334,19 @@ static int base; base=startlit; size=1; for (cur=0; cur0) { + /* 2 or more dimensions left, fill in an indirection vector */ + if (dim[cur+1]>0) { + for (i=0; inext; d<*skipdim; d++,ld=ld->next) { assert(ld!=NULL); @@ -2353,13 +2354,13 @@ static int base; for (d=0; dname,NULL,16)==d); - litq[base++]=((size+i)*dim[cur]+accum) * sizeof(cell); + litq[base++]=(size*dim[cur]+accum) * sizeof(cell); accum+=ld->value-1; *skipdim+=1; ld=ld->next; } /* for */ - } /* if */ - } /* for */ + } /* for */ + } /* if */ size*=dim[cur]; } /* for */ }