PR lto/61012 (ICE on undefined symbol)

Jan Hubicka hubicka@ucw.cz
Thu May 22 05:40:00 GMT 2014


Hi,
this patch fixes an ICE on undefined symbol. The testcase does not really go easily to testsuite
because it needs the undefined symbols to trigger. THe bug is however clear - one of the
loops is not properly skipping the static symbols.

Bootstrapped/regtested x86_64-linux, comitted to mainline and branch.
Honza

	PR lto/61012
	* lto-symtab.c (lto_symtab_merge_decls_1): Do not ICE on undefined externals
	mixed with variables.
Index: lto-symtab.c
===================================================================
--- lto-symtab.c	(revision 210672)
+++ lto-symtab.c	(working copy)
@@ -453,7 +453,12 @@ lto_symtab_merge_decls_1 (symtab_node *f
      cgraph or a varpool node.  */
   if (!prevailing)
     {
-      prevailing = first;
+      for (prevailing = first;
+	   prevailing; prevailing = prevailing->next_sharing_asm_name)
+	if (lto_symtab_symbol_p (prevailing))
+	  break;
+      if (!prevailing)
+	return;
       /* For variables chose with a priority variant with vnode
 	 attached (i.e. from unit where external declaration of
 	 variable is actually used).



More information about the Gcc-patches mailing list