(elf_gc_record_vtentry): Allocate an extra element in the vtable_entries_used
authorNick Clifton <nickc@redhat.com>
Tue, 17 Jun 2003 09:57:18 +0000 (09:57 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 17 Jun 2003 09:57:18 +0000 (09:57 +0000)
array to allow for the accessing the largest element.

bfd/ChangeLog
bfd/elflink.h

index 23350fd8d09e5d1218f5833fdb705015a62de72f..c6b6b1ee84122c26356fed30d352edc4cef31235 100644 (file)
@@ -1,3 +1,9 @@
+2003-06-17  Nick Clifton  <nickc@redhat.com>
+
+       * elflink.h (elf_gc_record_vtentry): Allocate an extra element
+        in the vtable_entries_used array to allow for the accessing
+        the largest element.
+
 2003-06-17  Alan Modra  <amodra@bigpond.net.au>
 
        * elf64-ppc.c (struct ppc_link_hash_table): Remove top_index.  Modify
index 8acb7a93632a5b9e309e8dac72d27da2ab1f0ea9..b960c73f9cbce6d0f773a9f662ca6892224dc796 100644 (file)
@@ -6283,7 +6283,7 @@ elf_gc_record_vtentry (abfd, sec, h, addend)
   struct elf_backend_data *bed = get_elf_backend_data (abfd);
   unsigned int log_file_align = bed->s->log_file_align;
 
-  if (addend >= h->vtable_entries_size)
+  if (addend > h->vtable_entries_size)
     {
       size_t size, bytes;
       bfd_boolean *ptr = h->vtable_entries_used;
@@ -6304,8 +6304,9 @@ elf_gc_record_vtentry (abfd, sec, h, addend)
        }
 
       /* Allocate one extra entry for use as a "done" flag for the
-        consolidation pass.  */
-      bytes = ((size >> log_file_align) + 1) * sizeof (bfd_boolean);
+        consolidation pass and another extra entry because we are
+        going to write up to and including 'size' entries.  */
+      bytes = ((size >> log_file_align) + 2) * sizeof (bfd_boolean);
 
       if (ptr)
        {