diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/varpool.c | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fa6a7e8..6c19064 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2015-02-04 Jan Hubicka <hubicka@ucw.cz> + PR ipa/61548 + * varpool.c (varpool_node::remove): Fix order of variables. + +2015-02-04 Jan Hubicka <hubicka@ucw.cz> + PR ipa/64686 * ipa-inline.c (inline_small_functions): Fix ordering issue between speculation resolution and key updates. diff --git a/gcc/varpool.c b/gcc/varpool.c index 3bd6eb4..49a9213 100644 --- a/gcc/varpool.c +++ b/gcc/varpool.c @@ -195,7 +195,6 @@ void varpool_node::remove (void) { symtab->call_varpool_removal_hooks (this); - unregister (); /* When streaming we can have multiple nodes associated with decl. */ if (symtab->state == LTO_STREAMING) @@ -205,6 +204,8 @@ varpool_node::remove (void) else if (DECL_INITIAL (decl) && DECL_INITIAL (decl) != error_mark_node && !ctor_useable_for_folding_p ()) remove_initializer (); + + unregister (); ggc_free (this); } |