* device/include/pic16/pic18f*.h: add bit aliases in INTCONbits_t
[fw/sdcc] / src / SDCCglue.c
index 060ef51547a28d7d0ba30125c03b0ca0ec8cf7d0..19c452ea17571170913290e4404f3bea74cee696 100644 (file)
@@ -660,6 +660,7 @@ printIvalBitFields (symbol **sym, initList **ilist, struct dbuf_s * oBuf)
       if (0 == SPEC_BLEN (lsym->etype))
         {
           /* bit-field structure member with a width of 0 */
+          lsym = lsym->next;
           break;
         }
       else if (!SPEC_BUNNAMED (lsym->etype))
@@ -744,9 +745,11 @@ printIvalStruct (symbol * sym, sym_link * type,
           if (IS_BITFIELD (sflds->type))
             printIvalBitFields(&sflds, &iloop, oBuf);
           else
-            printIval (sym, sflds->type, iloop, oBuf, 1);
-            sflds = sflds->next;
-            iloop = iloop ? iloop->next : NULL;
+            {
+              printIval (sym, sflds->type, iloop, oBuf, 1);
+              sflds = sflds->next;
+              iloop = iloop ? iloop->next : NULL;
+            }
         }
     }
 
@@ -771,9 +774,6 @@ printIvalChar (symbol * sym, sym_link * type, initList * ilist, struct dbuf_s *
         {
           if (!size)
             {
-              werror (E_INTERNAL_ERROR, __FILE__, __LINE__,
-                "size should never be 0");
-
               /* we have not been given a size, but now we know it */
               size = strlen (SPEC_CVAL (val->etype).v_char) + 1;
               /* but first check, if it's a flexible array */