This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Don't use readonly temp in store_field.
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: gcc-patches at gcc dot gnu dot org
- Date: Sat, 26 Apr 03 07:33:30 EDT
- Subject: 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);