aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/varpool.c3
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);
}