PR ld/2659
authorNick Clifton <nickc@redhat.com>
Wed, 5 Jul 2006 10:21:39 +0000 (10:21 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 5 Jul 2006 10:21:39 +0000 (10:21 +0000)
* cofflink.c (_bfd_coff_link_input_bfd): Fix selection of aux entry when
  multiple definitions of a symbol are encountered.

bfd/ChangeLog
bfd/cofflink.c

index 760e5d4a8b3b10cc8d9f10ce06a124113296e0e0..55b13326fbf3d84248c620c27cb0649447446f9f 100644 (file)
@@ -1,3 +1,9 @@
+2006-07-05  Nick Clifton  <nickc@redhat.com>
+
+       PR ld/2659
+       * cofflink.c (_bfd_coff_link_input_bfd): Fix selection of aux
+       entry when multiple definitions of a symbol are encountered.
+
 2006-06-30  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elf32-i386.c (elf_i386_relocate_section): Use xchg %ax,%ax
index c17701c16e8927122a3c1e7f55aaf42d5489cd59..40f5a7009292a5eb2cbe897e548f510de1295c7c 100644 (file)
@@ -1921,6 +1921,7 @@ _bfd_coff_link_input_bfd (struct coff_final_link_info *finfo, bfd *input_bfd)
                  generate two symbols with the same name, but only one
                  will have aux entries.  */
              BFD_ASSERT (isymp->n_numaux == 0
+                         || h->numaux == 0
                          || h->numaux == isymp->n_numaux);
            }
 
@@ -1936,7 +1937,7 @@ _bfd_coff_link_input_bfd (struct coff_final_link_info *finfo, bfd *input_bfd)
              union internal_auxent aux;
              union internal_auxent *auxp;
 
-             if (h != NULL)
+             if (h != NULL && h->aux != NULL && (h->numaux > i))
                auxp = h->aux + i;
              else
                {