summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/varasm.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d3078a52ec6..2e06e8b76fe 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Fri Aug 29 11:42:04 1997 Jim Wilson <wilson@cygnus.com>
+
+ * varasm.c (mark_constants): Don't look inside CONST_DOUBLEs.
+
Fri Aug 29 09:33:20 1997 Philipp Thomas (kthomas@lxi165.gwdg.de)
* dwarfout2.c (build_abbrev_table): Use xrealloc, not xmalloc
diff --git a/gcc/varasm.c b/gcc/varasm.c
index c8ece891d24..9d245830f44 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -3798,6 +3798,13 @@ mark_constants (x)
find_pool_constant (x)->mark = 1;
return;
}
+ /* Never search inside a CONST_DOUBLE, because CONST_DOUBLE_MEM may be
+ a MEM, but does not constitute a use of that MEM. This is particularly
+ important inside a nested function, because CONST_DOUBLE_MEM may be
+ a reference to a MEM in the parent's constant pool. See the comment
+ in force_const_mem. */
+ else if (GET_CODE (x) == CONST_DOUBLE)
+ return;
/* Insns may appear inside a SEQUENCE. Only check the patterns of
insns, not any notes that may be attached. We don't want to mark