From: rguenth Date: Wed, 9 Sep 2009 09:30:26 +0000 (+0000) Subject: 2009-09-09 Richard Guenther X-Git-Tag: upstream/4.9.2~33861 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ca1de3a62d14399000f480cd55dec6c1d79c463f;p=platform%2Fupstream%2Flinaro-gcc.git 2009-09-09 Richard Guenther * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151558 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f0be593..e6f096a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2009-09-09 Richard Guenther + + * 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 PR middle-end/41268 diff --git a/gcc/tree.c b/gcc/tree.c index 010aeff..17009c6 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -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 */ } };