aboutsummaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorJim Wilson <wilson@cygnus.com>1997-08-29 18:52:51 +0000
committerJim Wilson <wilson@gcc.gnu.org>1997-08-29 11:52:51 -0700
commiteb7b11fd0742ac1377e3b6338feec6fc2e64200e (patch)
tree0bfebe1dada9c288af2d7d1217465a1cc22080a3 /gcc/varasm.c
parent9aef2966e9759da6b31f181c0d62e90eb203c4cf (diff)
downloadgcc-eb7b11fd0742ac1377e3b6338feec6fc2e64200e.zip
gcc-eb7b11fd0742ac1377e3b6338feec6fc2e64200e.tar.gz
gcc-eb7b11fd0742ac1377e3b6338feec6fc2e64200e.tar.bz2
Fix C++ template instantiation back end core dump.
* varasm.c (mark_constants): Don't look inside CONST_DOUBLEs. From-SVN: r14999
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index c8ece89..9d24583 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