From: Trevor Saunders <tsaund...@mozilla.com> Hi,
The memory allocated for the hash table is never rooted by anything, so keeping it in gc memory only works if it never needs to survive a gc. Trev lto/ * lto.c (read_cgraph_and_symbols): allocate gimple_canonical_types htab with malloc instead of ggc. --- gcc/lto/lto.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index a1cd958..1ff02f8 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -2926,8 +2926,8 @@ read_cgraph_and_symbols (unsigned nfiles, const char **fnames) symtab->state = LTO_STREAMING; canonical_type_hash_cache = new hash_map<const_tree, hashval_t> (251); - gimple_canonical_types = htab_create_ggc (16381, gimple_canonical_type_hash, - gimple_canonical_type_eq, 0); + gimple_canonical_types = htab_create (16381, gimple_canonical_type_hash, + gimple_canonical_type_eq, NULL); gcc_obstack_init (&tree_scc_hash_obstack); tree_scc_hash = new hash_table<tree_scc_hasher> (4096); -- 2.1.3