2011-06-23  Andrew Burgess  <aburgess@broadcom.com>

	* gdbtypes.c (append_composite_type_field_aligned): Fix
	calculation of bit position based on alignment.
This commit is contained in:
Andrew Burgess 2011-06-23 09:51:57 +00:00
parent 9497469fbd
commit 86c3c1fccc
2 changed files with 11 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2011-06-23 Andrew Burgess <aburgess@broadcom.com>
* gdbtypes.c (append_composite_type_field_aligned): Fix
calculation of bit position based on alignment.
2011-06-22 Pedro Alves <pedro@codesourcery.com>
* breakpoint.c (bpstat_stop_status): Call the check_status

View File

@ -3654,12 +3654,15 @@ append_composite_type_field_aligned (struct type *t, char *name,
if (alignment)
{
int left = FIELD_BITPOS (f[0]) % (alignment * TARGET_CHAR_BIT);
int left;
alignment *= TARGET_CHAR_BIT;
left = FIELD_BITPOS (f[0]) % alignment;
if (left)
{
FIELD_BITPOS (f[0]) += left;
TYPE_LENGTH (t) += left / TARGET_CHAR_BIT;
FIELD_BITPOS (f[0]) += (alignment - left);
TYPE_LENGTH (t) += (alignment - left) / TARGET_CHAR_BIT;
}
}
}