aboutsummaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 3d18899..8c0b5a1 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -3210,13 +3210,22 @@ mark_varasm_state (p)
ggc_mark_rtx (p->x_const_double_chain);
}
-/* Clear out all parts of our state in F that can safely be discarded
- after the function has been compiled. */
+/* Clear out all parts of the state in F that can safely be discarded
+ after the function has been compiled, to let garbage collection
+ reclaim the memory. D is the declaration for the function just
+ compiled. Its output may have been deferred. */
+
void
-free_varasm_status (f)
+free_varasm_status (f, d)
struct function *f;
+ tree d;
{
- struct varasm_status *p = f->varasm;
+ struct varasm_status *p;
+
+ if (DECL_DEFER_OUTPUT (d))
+ return;
+
+ p = f->varasm;
free (p->x_const_rtx_hash_table);
free (p->x_const_rtx_sym_hash_table);