Merge pull request #158 from Arkshine/fix-sizeof-fix

Improve more sizeof return on array without specifiying the dimensions
This commit is contained in:
Vincent Herbet 2014-11-11 21:09:44 +01:00
commit 0dd638d0fd

View File

@ -2264,18 +2264,18 @@ static void initials(int ident,int tag,cell *size,int dim[],int numdim,
* the same value; if so, we can store this
*/
constvalue *ld=lastdim.next;
int d,match;
for (d=0; d<dim[numdim-2]; d++) {
assert(ld!=NULL);
assert(strtol(ld->name,NULL,16)==d);
if (d==0)
match=ld->value;
else if (match!=ld->value)
break;
int match;
assert(ld!=NULL);
assert(strtol(ld->name,NULL,16)==0);
match=ld->value;
while (ld->next) {
ld=ld->next;
} /* for */
if (d==dim[numdim-2])
dim[numdim-1]=match;
if (match!=ld->value) {
match=0;
break;
}
}
dim[numdim-1]=match;
} /* if */
/* after all arrays have been initalized, we know the (major) dimensions
* of the array and we can properly adjust the indirection vectors