diff --git a/source/compiler/sc1.c b/source/compiler/sc1.c index 8e6709a..25dc4de 100644 --- a/source/compiler/sc1.c +++ b/source/compiler/sc1.c @@ -2460,18 +2460,14 @@ static cell initarray(int ident,int tag,int dim[],int numdim,int cur, int startlit,int counteddim[],constvalue *lastdim, constvalue *enumroot,int *errorfound) { - cell dsize,totalsize; - int idx,numvectors,abortparse,ellips; - const char *initptr,*prev_initptr; + cell dsize,totalsize=0; + int idx=0,vec_idx,abortparse=FALSE; + cell *prev1=NULL,*prev2=NULL; assert(cur>=0 && cur=0); assert(cur+2<=numdim); /* there must be 2 dimensions or more to do */ assert(errorfound!=NULL && *errorfound==FALSE); - idx=0; - prev_initptr=NULL; - totalsize=0; - abortparse=FALSE; needtoken('{'); do { int ellips=FALSE; @@ -2493,28 +2489,29 @@ static cell initarray(int ident,int tag,int dim[],int numdim,int cur, dsize=initarray(ident,tag,dim,numdim,cur+1,startlit,counteddim, lastdim,enumroot,errorfound); } else { - initptr=lptr; - numvectors=idx+1; - if ((ellips=matchtoken(tELLIPS))!=0) - numvectors=dim[cur]; - dsize=0; - while (idx