diff mbox

Fix ordering issue in varpol::remove_node

Message ID 20150205035911.GE31160@kam.mff.cuni.cz
State New
Headers show

Commit Message

Jan Hubicka Feb. 5, 2015, 3:59 a.m. UTC
Hi,
this patch fixes ordering issue in varpool.c that, while removing alias
it first removes link to its target and then tries to copy the constructor.

Bootstrapped/regtested x86_64-linux, commited.
	PR ipa/61548
	* varpool.c (varpool_node::remove): Fix order of variables.
diff mbox

Patch

Index: varpool.c
===================================================================
--- varpool.c	(revision 220417)
+++ varpool.c	(working copy)
@@ -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);
 }