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]
Other format: [Raw text]

Don't use readonly temp in store_field.


This failed with large Ada test case on Alpha/Unix.

Tested on i686-pc-linux-gnu.

Thu Aug  8 15:12:15 2002  Richard Kenner  <kenner at vlsi1 dot ultra dot nyu dot edu>

	* expr.c (store_field): When making temporary for store, don't
	make it TYPE_QUAL_CONST.

*** gcc/expr.c	22 Apr 2003 23:17:43 -0000	1.526
--- gcc/expr.c	26 Apr 2003 11:15:32 -0000
*************** store_field (target, bitsize, bitpos, mo
*** 5529,5541 ****
       very efficient in general, but should only be slightly more expensive
       than the otherwise-required unaligned accesses.  Perhaps this can be
!      cleaned up later.  */
  
    if (mode == BLKmode
        && (GET_CODE (target) == REG || GET_CODE (target) == SUBREG))
      {
!       rtx object
! 	= assign_temp
! 	  (build_qualified_type (type, TYPE_QUALS (type) | TYPE_QUAL_CONST),
! 	   0, 1, 1);
        rtx blk_object = adjust_address (object, BLKmode, 0);
  
--- 5529,5539 ----
       very efficient in general, but should only be slightly more expensive
       than the otherwise-required unaligned accesses.  Perhaps this can be
!      cleaned up later.  It's tempting to make OBJECT readonly, but it's set
!      twice, once with emit_move_insn and once via store_field.  */
  
    if (mode == BLKmode
        && (GET_CODE (target) == REG || GET_CODE (target) == SUBREG))
      {
!       rtx object = assign_temp (type, 0, 1, 1);
        rtx blk_object = adjust_address (object, BLKmode, 0);
  


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