aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/s390/s390.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e6868fe..69703a7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-09-10 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (s390_dump_pool): Create copy of constant
+ pool entries since they might hold values that must not be shared.
+
2007-09-10 Uros Bizjak <ubizjak@gmail.com>
PR target/33369
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index aa6db1f..c4860e5 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -5600,7 +5600,7 @@ s390_dump_pool (struct constant_pool *pool, bool remote_label)
for (c = pool->constants[i]; c; c = c->next)
{
/* Convert UNSPEC_LTREL_OFFSET unspecs to pool-relative references. */
- rtx value = c->value;
+ rtx value = copy_rtx (c->value);
if (GET_CODE (value) == CONST
&& GET_CODE (XEXP (value, 0)) == UNSPEC
&& XINT (XEXP (value, 0), 1) == UNSPEC_LTREL_OFFSET