summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2001-11-26 22:29:46 +0000
committerdj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2001-11-26 22:29:46 +0000
commit297d4daf45ed24f6eabef2cf3691d06c3589b255 (patch)
tree35b519249ad421be9582c4f3d3c1341d27c73cc4
parent292a1b7e74bf08282ab66a0fe6140699ed9e358f (diff)
downloadgcc-297d4daf45ed24f6eabef2cf3691d06c3589b255.tar.gz
* expr.c (store_constructor): Actually use the value computed
if WORD_REGISTER_OPERATIONS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47359 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/expr.c6
2 files changed, 7 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 35e514806d7..bb664b16439 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2001-11-26 DJ Delorie <dj@redhat.com>
+
+ * expr.c (store_constructor): Actually use the value computed
+ if WORD_REGISTER_OPERATIONS.
+
2001-11-26 Richard Henderson <rth@redhat.com>
* config/elfos.h (SELECT_SECTION): Don't check TREE_READONLY
diff --git a/gcc/expr.c b/gcc/expr.c
index 9ea2345ffa2..32e6d2db991 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -4546,9 +4546,7 @@ store_constructor (exp, target, cleared, size)
for (elt = CONSTRUCTOR_ELTS (exp); elt; elt = TREE_CHAIN (elt))
{
tree field = TREE_PURPOSE (elt);
-#ifdef WORD_REGISTER_OPERATIONS
tree value = TREE_VALUE (elt);
-#endif
enum machine_mode mode;
HOST_WIDE_INT bitsize;
HOST_WIDE_INT bitpos = 0;
@@ -4562,7 +4560,7 @@ store_constructor (exp, target, cleared, size)
if (field == 0)
continue;
- if (cleared && is_zeros_p (TREE_VALUE (elt)))
+ if (cleared && is_zeros_p (value))
continue;
if (host_integerp (DECL_SIZE (field), 1))
@@ -4655,7 +4653,7 @@ store_constructor (exp, target, cleared, size)
}
store_constructor_field (to_rtx, bitsize, bitpos, mode,
- TREE_VALUE (elt), type, cleared,
+ value, type, cleared,
get_alias_set (TREE_TYPE (field)));
}
}