This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Minor bug in store_constructor_field


I just comitted the following:

Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expr.c (store_constructor_field): If bit position is not multiple
	of alignment of TARGET's mode, use BLKmode.

*** expr.c.nov28	Sun Nov 28 08:46:31 1999
--- expr.c	Sun Nov 28 10:27:35 1999
*************** store_constructor_field (target, bitsize
*** 3637,3643 ****
      {
        if (bitpos != 0)
! 	target = change_address (target, VOIDmode,
! 				 plus_constant (XEXP (target, 0),
! 						bitpos / BITS_PER_UNIT));
        store_constructor (exp, target, align, cleared);
      }
--- 3637,3648 ----
      {
        if (bitpos != 0)
! 	target
! 	  = change_address (target,
! 			    GET_MODE (target) == BLKmode
! 			    || 0 != (bitpos
! 				     % GET_MODE_ALIGNMENT (GET_MODE (target)))
! 			    ? BLKmode : VOIDmode,
! 			    plus_constant (XEXP (target, 0),
! 					   bitpos / BITS_PER_UNIT));
        store_constructor (exp, target, align, cleared);
      }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]