c-typeck.c (output_init_element, [...]): When advancing constructor_unfilled_fields...
authorJ"orn Rennecke <amylaar@cygnus.co.uk>
Wed, 14 Jul 1999 15:47:26 +0000 (15:47 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Wed, 14 Jul 1999 15:47:26 +0000 (16:47 +0100)
* c-typeck.c (output_init_element, process_init_element):
When advancing constructor_unfilled_fields for a RECORD_TYPE,
check for nameless bit fields.

From-SVN: r28098

gcc/ChangeLog
gcc/c-typeck.c

index d708c5dc197008957607923e067d3ec947e454ca..d921095717bdef4dc5f32b74ebfd3b1b9b42f55c 100644 (file)
@@ -1,3 +1,9 @@
+Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * c-typeck.c (output_init_element, process_init_element):
+       When advancing constructor_unfilled_fields for a RECORD_TYPE,
+       check for nameless bit fields.
+
 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
 
        * regclass.c (scan_one_insn): Notice subregs that change the
index d4749cda234b0af8574b5985d84e95a8cde86fdc..18b82109ed53d41bc8c5a2249ca30f31006dab32 100644 (file)
@@ -6150,7 +6150,16 @@ output_init_element (value, type, field, pending)
            = TREE_INT_CST_HIGH (tem);
        }
       else if (TREE_CODE (constructor_type) == RECORD_TYPE)
-       constructor_unfilled_fields = TREE_CHAIN (constructor_unfilled_fields);
+       {
+         constructor_unfilled_fields =
+           TREE_CHAIN (constructor_unfilled_fields);
+         /* Skip any nameless bit fields.  */
+         while (constructor_unfilled_fields != 0
+                && DECL_C_BIT_FIELD (constructor_unfilled_fields)
+                && DECL_NAME (constructor_unfilled_fields) == 0)
+           constructor_unfilled_fields =
+             TREE_CHAIN (constructor_unfilled_fields);
+       }
       else if (TREE_CODE (constructor_type) == UNION_TYPE)
        constructor_unfilled_fields = 0;
 
@@ -6485,6 +6494,12 @@ process_init_element (value)
                = TREE_INT_CST_HIGH (temp);
 
              constructor_unfilled_fields = TREE_CHAIN (constructor_fields);
+             /* Skip any nameless bit fields.  */
+             while (constructor_unfilled_fields != 0
+                    && DECL_C_BIT_FIELD (constructor_unfilled_fields)
+                    && DECL_NAME (constructor_unfilled_fields) == 0)
+               constructor_unfilled_fields =
+                 TREE_CHAIN (constructor_unfilled_fields);
            }
 
          constructor_fields = TREE_CHAIN (constructor_fields);