diff options
author | Jim Wilson <wilson@cygnus.com> | 1997-08-29 18:52:51 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1997-08-29 11:52:51 -0700 |
commit | eb7b11fd0742ac1377e3b6338feec6fc2e64200e (patch) | |
tree | 0bfebe1dada9c288af2d7d1217465a1cc22080a3 /gcc | |
parent | 9aef2966e9759da6b31f181c0d62e90eb203c4cf (diff) | |
download | gcc-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')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/varasm.c | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d3078a5..2e06e8b 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 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 |