Commit ccffb755 by Richard Guenther Committed by Richard Biener

tree.c (free_lang_data_in_type): Do not free the type variant chains.

2009-09-09  Richard Guenther  <rguenther@suse.de>

	* tree.c (free_lang_data_in_type): Do not free the type variant
	chains.
	(free_lang_data): Merge char_type_node with its properly signed
	variant.
	(pass_ipa_free): Collect after freeing language specific data.

From-SVN: r151558
parent e79faf7e
2009-09-09 Richard Guenther <rguenther@suse.de>
* tree.c (free_lang_data_in_type): Do not free the type variant
chains.
(free_lang_data): Merge char_type_node with its properly signed
variant.
(pass_ipa_free): Collect after freeing language specific data.
2009-09-09 Michael Matz <matz@suse.de>
PR middle-end/41268
......
......@@ -4238,16 +4238,6 @@ free_lang_data_in_type (tree type)
TYPE_CONTEXT (type) = NULL_TREE;
TYPE_STUB_DECL (type) = NULL_TREE;
/* Remove type variants other than the main variant. This is both
wasteful and it may introduce infinite loops when the types are
read from disk and merged (since the variant will be the same
type as the main variant, traversing type variants will get into
an infinite loop). */
if (TYPE_MAIN_VARIANT (type))
TYPE_NEXT_VARIANT (TYPE_MAIN_VARIANT (type)) = NULL_TREE;
TYPE_NEXT_VARIANT (type) = NULL_TREE;
}
......@@ -4856,6 +4846,12 @@ free_lang_data (void)
boolean_true_node = TYPE_MAX_VALUE (boolean_type_node);
}
/* Unify char_type_node with its properly signed variant. */
if (TYPE_UNSIGNED (char_type_node))
unsigned_char_type_node = char_type_node;
else
signed_char_type_node = char_type_node;
/* Reset some langhooks. */
lang_hooks.callgraph.analyze_expr = NULL;
lang_hooks.types_compatible_p = NULL;
......@@ -4898,7 +4894,7 @@ struct simple_ipa_opt_pass pass_ipa_free_lang_data =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
0 /* todo_flags_finish */
TODO_ggc_collect /* todo_flags_finish */
}
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment