------- Comment #10 from hubicka at gcc dot gnu dot org 2005-12-02 18:14
-------
Testing patch:
2005-12-02 Jan Hubicka <[EMAIL PROTECTED]>
PR target/24969
* i386.c (classify_argument): Properly adjust offset of bitfield for
substructures.
Index: config/i386/i386.c
===================================================================
*** config/i386/i386.c (revision 107909)
--- config/i386/i386.c (working copy)
*************** classify_argument (enum machine_mode mod
*** 2652,2659 ****
misaligned integers. */
if (DECL_BIT_FIELD (field))
{
! for (i = int_bit_position (field) / 8 / 8;
! i < (int_bit_position (field)
+ tree_low_cst (DECL_SIZE (field), 0)
+ 63) / 8 / 8; i++)
classes[i] =
--- 2652,2659 ----
misaligned integers. */
if (DECL_BIT_FIELD (field))
{
! for (i = (int_bit_position (field) + (bit_offset % 64)) /
8 / 8;
! i < ((int_bit_position (field) + (bit_offset % 64))
+ tree_low_cst (DECL_SIZE (field), 0)
+ 63) / 8 / 8; i++)
classes[i] =
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24969