bugfix
authorMatthias Braun <matze@braunis.de>
Fri, 20 Mar 2009 05:03:08 +0000 (05:03 +0000)
committerMatthias Braun <matze@braunis.de>
Fri, 20 Mar 2009 05:03:08 +0000 (05:03 +0000)
[r25706]

type.c

diff --git a/type.c b/type.c
index 7b55a56..c0d7a7e 100644 (file)
--- a/type.c
+++ b/type.c
@@ -1703,6 +1703,7 @@ static entity_t *pack_bitfield_members(il_size_t *struct_offset,
                size_t bit_size = member_type->bitfield.bit_size;
                if (!packed) {
                        bit_offset += (offset & alignment_mask) * BITS_PER_BYTE;
+                       offset     &= ~alignment_mask;
                        size_t base_size = get_type_size(base_type) * BITS_PER_BYTE;
 
                        if (bit_offset + bit_size > base_size || bit_size == 0) {