--- dwarf2read.c (revision 123) +++ dwarf2read.c (local) @@ -3500,8 +3500,11 @@ dwarf2_add_field (struct field_info *fip attr = dwarf2_attr (die, DW_AT_data_member_location, cu); if (attr) { - FIELD_BITPOS (*fp) = - decode_locdesc (DW_BLOCK (attr), cu) * bits_per_byte; + if (attr->form == DW_FORM_udata) + FIELD_BITPOS (*fp) = 8 * DW_UNSND (attr); + else + FIELD_BITPOS (*fp) = + decode_locdesc (DW_BLOCK (attr), cu) * bits_per_byte; } else FIELD_BITPOS (*fp) = 0;