aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-09-18 02:36:30 +0000
committerRichard Stallman <rms@gnu.org>1993-09-18 02:36:30 +0000
commit925d5bbfe9aab62d196da3cc1afb238c6d8b5b4c (patch)
tree282595e20289eb6975819470a684a8e5f73a61f8 /gcc
parent96fc2623de82eeac40d5bc6a44c9a8bf95606f11 (diff)
downloadgcc-925d5bbfe9aab62d196da3cc1afb238c6d8b5b4c.zip
gcc-925d5bbfe9aab62d196da3cc1afb238c6d8b5b4c.tar.gz
gcc-925d5bbfe9aab62d196da3cc1afb238c6d8b5b4c.tar.bz2
(output_init_element): Update constructor_bit_index for union types.
From-SVN: r5350
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c-typeck.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index 9e463cd..f363420 100644
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -5987,8 +5987,10 @@ output_init_element (value, type, field, pending)
output_constant (digest_init (type, value, 0, 0),
int_size_in_bytes (type));
- /* For a record, keep track of end position of last field. */
- if (TREE_CODE (constructor_type) == RECORD_TYPE)
+ /* For a record or union,
+ keep track of end position of last field. */
+ if (TREE_CODE (constructor_type) == RECORD_TYPE
+ || TREE_CODE (constructor_type) == UNION_TYPE)
{
tree temp = size_binop (PLUS_EXPR,
DECL_FIELD_BITPOS (constructor_fields),