Segfault in ld building SPEC CPU2017 527.cam4_r with -flto

Alan Modra amodra@gmail.com
Wed Aug 28 15:05:00 GMT 2019


Caused by the PR24406 fix.  unwrap_hash_lookup shouldn't be called
with link_info.wrap_hash NULL.

	PR ld/24406
	* plugin.c (get_symbols): Test link_info.wrap_hash before calling
	unwrap_hash_lookup.

diff --git a/ld/plugin.c b/ld/plugin.c
index 0344da2df9..47e5cea82e 100644
--- a/ld/plugin.c
+++ b/ld/plugin.c
@@ -749,7 +749,7 @@ get_symbols (const void *handle, int nsyms, struct ld_plugin_symbol *syms,
       if (syms[n].def != LDPK_UNDEF && syms[n].def != LDPK_WEAKUNDEF)
 	{
 	  blhe = h;
-	  if (blhe)
+	  if (blhe && link_info.wrap_hash != NULL)
 	    {
 	      /* Check if a symbol is a wrapper symbol.  */
 	      struct bfd_link_hash_entry *unwrap

-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list