aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf.c5
2 files changed, 10 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 561ff11..c4b97ee 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2002-11-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * elf.c (_bfd_elf_link_hash_table_init): Make sure
+ can_refcount is properly extended to the type of
+ init_refcount.
+
2002-11-19 Alexandre Oliva <aoliva@redhat.com>
* elfxx-mips.c (MIPS_RELOC_RELA_P): New macro.
diff --git a/bfd/elf.c b/bfd/elf.c
index c5987fe..4ddc99d 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -1503,7 +1503,10 @@ _bfd_elf_link_hash_table_init (table, abfd, newfunc)
table->dynamic_sections_created = false;
table->dynobj = NULL;
- table->init_refcount = get_elf_backend_data (abfd)->can_refcount - 1;
+ /* Make sure can_refcount is extended to the width and signedness of
+ init_refcount before we subtract one from it. */
+ table->init_refcount = get_elf_backend_data (abfd)->can_refcount;
+ --table->init_refcount;
/* The first dynamic symbol is a dummy. */
table->dynsymcount = 1;
table->dynstr = NULL;