From f87031947e2102e0530ecd6dba06c6a9c488cd1a Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Sat, 20 Jun 2009 13:13:11 +0000
Subject: [PATCH] 2009-06-19  H.J. Lu  <hongjiu.lu@intel.com>

	* elflink.c (elf_link_add_object_symbols): Avoid warning
	from -Wjump-misses-init in gcc 4.5.0.
---
 bfd/ChangeLog |  5 +++++
 bfd/elflink.c | 12 ++++++------
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8931e757b2f..f01de47a797 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2009-06-19  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elflink.c (elf_link_add_object_symbols): Avoid warning
+	from -Wjump-misses-init in gcc 4.5.0.
+
 2009-06-19  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* elf32-i386.c (elf_i386_check_relocs): Properly check local
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 2366dd40478..9932186de96 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -3549,7 +3549,11 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
 	  unsigned long shlink;
 
 	  if (!bfd_malloc_and_get_section (abfd, s, &dynbuf))
-	    goto error_free_dyn;
+	    {
+error_free_dyn:
+	      free (dynbuf);
+	      goto error_return;
+	    }
 
 	  elfsec = _bfd_elf_section_from_bfd_section (abfd, s);
 	  if (elfsec == SHN_BAD)
@@ -3633,11 +3637,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
 		  amt = strlen (fnm) + 1;
 		  anm = bfd_alloc (abfd, amt);
 		  if (anm == NULL)
-		    {
-		    error_free_dyn:
-		      free (dynbuf);
-		      goto error_return;
-		    }
+		    goto error_free_dyn;
 		  memcpy (anm, fnm, amt);
 		  n->name = anm;
 		  n->by = abfd;
-- 
GitLab