aboutsummaryrefslogtreecommitdiff
path: root/gcc/ggc-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ggc-common.c')
-rw-r--r--gcc/ggc-common.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c
index 44f8cc2a1c7..b82eb5b8df6 100644
--- a/gcc/ggc-common.c
+++ b/gcc/ggc-common.c
@@ -1,5 +1,5 @@
/* Simple garbage collection for the GNU compiler.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -48,7 +48,7 @@ static void ggc_mark_rtx_varray_ptr PARAMS ((void *));
static void ggc_mark_tree_varray_ptr PARAMS ((void *));
static void ggc_mark_tree_hash_table_ptr PARAMS ((void *));
static void ggc_mark_trees PARAMS ((void));
-static boolean ggc_mark_tree_hash_table_entry PARAMS ((struct hash_entry *,
+static bool ggc_mark_tree_hash_table_entry PARAMS ((struct hash_entry *,
hash_table_key));
/* Maintain global roots that are preserved during GC. */
@@ -277,9 +277,6 @@ ggc_mark_rtx_children (r)
case 'V': case 'E':
ggc_mark_rtvec (XVEC (r, i));
break;
- case 'S': case 's':
- ggc_mark_if_gcable (XSTR (r, i));
- break;
}
}
}
@@ -376,12 +373,14 @@ ggc_mark_trees ()
ggc_mark_tree (DECL_RESULT_FLD (t));
ggc_mark_tree (DECL_INITIAL (t));
ggc_mark_tree (DECL_ABSTRACT_ORIGIN (t));
- ggc_mark_tree (DECL_ASSEMBLER_NAME (t));
ggc_mark_tree (DECL_SECTION_NAME (t));
ggc_mark_tree (DECL_MACHINE_ATTRIBUTES (t));
- ggc_mark_rtx (DECL_RTL (t));
+ if (DECL_RTL_SET_P (t))
+ ggc_mark_rtx (DECL_RTL (t));
ggc_mark_rtx (DECL_LIVE_RANGE_RTL (t));
ggc_mark_tree (DECL_VINDEX (t));
+ if (DECL_ASSEMBLER_NAME_SET_P (t))
+ ggc_mark_tree (DECL_ASSEMBLER_NAME (t));
lang_mark_tree (t);
break;
@@ -465,7 +464,7 @@ ggc_mark_tree_varray (v)
/* Mark the hash table-entry HE. It's key field is really a tree. */
-static boolean
+static bool
ggc_mark_tree_hash_table_entry (he, k)
struct hash_entry *he;
hash_table_key k ATTRIBUTE_UNUSED;