_bfd_elf_merge_symbol tidy

Alan Modra amodra@gmail.com
Tue Mar 26 06:07:00 GMT 2013


On Mon, Mar 25, 2013 at 04:41:20PM +1030, Alan Modra wrote:
> This patch reorganizes elf_link_add_object_symbols a little to allow
> removal of two elf_link_hash_lookup calls.

I'm not completely certain that we can't hit a bfd_link_hash_indirect
symbol here after moving _bfd_elf_add_default_symbol before this code.
So make a noise if we ever hit it.

	* elflink.c (elf_link_add_object_symbols): Add assertion for
	common override alignment check code.  Formatting.

Index: bfd/elflink.c
===================================================================
RCS file: /cvs/src/src/bfd/elflink.c,v
retrieving revision 1.482
diff -u -p -r1.482 elflink.c
--- bfd/elflink.c	25 Mar 2013 06:12:06 -0000	1.482
+++ bfd/elflink.c	26 Mar 2013 04:58:42 -0000
@@ -4255,6 +4255,9 @@ error_free_dyn:
 	      bfd *normal_bfd;
 	      bfd *common_bfd;
 
+	      BFD_ASSERT (h->root.type == bfd_link_hash_defined
+			  || h->root.type == bfd_link_hash_defweak);
+
 	      symbol_align = ffs (h->root.u.def.value) - 1;
 	      if (h->root.u.def.section->owner != NULL
 		  && (h->root.u.def.section->owner->flags & DYNAMIC) == 0)
@@ -4298,7 +4301,8 @@ error_free_dyn:
 	    }
 
 	  /* Remember the symbol size if it isn't undefined.  */
-	  if ((isym->st_size != 0 && isym->st_shndx != SHN_UNDEF)
+	  if (isym->st_size != 0
+	      && isym->st_shndx != SHN_UNDEF
 	      && (definition || h->size == 0))
 	    {
 	      if (h->size != 0

-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list