From d2e73365e2f71412a639e180e870b412a8ea125c Mon Sep 17 00:00:00 2001
From: kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 26 Apr 2003 11:16:44 +0000
Subject: [PATCH] 	* expr.c (store_field): When making temporary for
 store, don't 	make it TYPE_QUAL_CONST.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66103 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog | 5 +++++
 gcc/expr.c    | 8 +++-----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 628695ba8c3b..bc26bb5b81cc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* expr.c (store_field): When making temporary for store, don't
+	make it TYPE_QUAL_CONST.
+
 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
 
 	* toplev.c (read_integral_parameter):  Use "argument" in error
diff --git a/gcc/expr.c b/gcc/expr.c
index 9176c30a8b1f..6488a8088b38 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -5528,15 +5528,13 @@ store_field (target, bitsize, bitpos, mode, exp, value_mode, unsignedp, type,
      that object.  Finally, load from the object into TARGET.  This is not
      very efficient in general, but should only be slightly more expensive
      than the otherwise-required unaligned accesses.  Perhaps this can be
-     cleaned up later.  */
+     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
-	  (build_qualified_type (type, TYPE_QUALS (type) | TYPE_QUAL_CONST),
-	   0, 1, 1);
+      rtx object = assign_temp (type, 0, 1, 1);
       rtx blk_object = adjust_address (object, BLKmode, 0);
 
       if (bitsize != (HOST_WIDE_INT) GET_MODE_BITSIZE (GET_MODE (target)))
-- 
GitLab