]> git.gag.com Git - fw/sdcc/commitdiff
src/SDCCglue.c (printIvalArray): iterative calculation of array length
authorbernhardheld <bernhardheld@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 28 Aug 2002 20:37:09 +0000 (20:37 +0000)
committerbernhardheld <bernhardheld@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 28 Aug 2002 20:37:09 +0000 (20:37 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2088 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/SDCCglue.c

index e0727cddd51885ec1523fb08240cbc581a305306..b1309016d33a99d837e33d9b94b1bf67a8e5c7ed 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2002-08-28  Bernhard Held <bernhard@bernhardheld.de>
+        * src/SDCCglue.c (printIvalArray): iterative calculation of array length
+
 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem@siol.net>
        * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
 
index 590320ca0684bebc60635cac9402b98185abe740..76582d4f987ccdcb734ade1d2f2c4589f72e8f22 100644 (file)
@@ -734,12 +734,13 @@ printIvalChar (sym_link * type, initList * ilist, FILE * oFile, char *s)
 /*-----------------------------------------------------------------*/
 /* printIvalArray - generates code for array initialization        */
 /*-----------------------------------------------------------------*/
-void 
+void
 printIvalArray (symbol * sym, sym_link * type, initList * ilist,
                FILE * oFile)
 {
   initList *iloop;
   int lcnt = 0, size = 0;
+  sym_link *last_type;
 
   /* take care of the special   case  */
   /* array of characters can be init  */
@@ -762,7 +763,9 @@ printIvalArray (symbol * sym, sym_link * type, initList * ilist,
     }
 
   iloop = ilist->init.deep;
-  lcnt = DCL_ELEM (type);
+  lcnt = 1;
+  for (last_type = type; last_type; last_type = last_type->next)
+    lcnt *= DCL_ELEM (last_type);
 
   for (;;)
     {