summaryrefslogtreecommitdiff
path: root/bfd/elf-strtab.c
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2001-11-11 22:18:01 +0000
committerHans-Peter Nilsson <hp@axis.com>2001-11-11 22:18:01 +0000
commitc416ae89eea9ed2a355a30d26ec14a3b3d376ed9 (patch)
treea383ac2fa184e97fcb8df00980499a47facea8fc /bfd/elf-strtab.c
parent358376fb7b922cfb98ca7d27dc218740e3f978a0 (diff)
downloadbinutils-redhat-c416ae89eea9ed2a355a30d26ec14a3b3d376ed9.tar.gz
* elf-strtab.c (_bfd_elf_strtab_finalize): Make first variable i
size_t. Rename second i to j.
Diffstat (limited to 'bfd/elf-strtab.c')
-rw-r--r--bfd/elf-strtab.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/bfd/elf-strtab.c b/bfd/elf-strtab.c
index 59a25a5446..44d6fc8b29 100644
--- a/bfd/elf-strtab.c
+++ b/bfd/elf-strtab.c
@@ -349,7 +349,13 @@ _bfd_elf_strtab_finalize (tab)
{
struct elf_strtab_hash_entry **array, **a, **end, *e;
htab_t lasttab = NULL, last4tab = NULL;
- bfd_size_type size, amt, i;
+ bfd_size_type size, amt;
+
+ /* GCC 2.91.66 (egcs-1.1.2) on i386 miscompiles this function when i is
+ a 64-bit bfd_size_type: a 64-bit target or --enable-64-bit-bfd.
+ Besides, indexing with a long long wouldn't give anything but extra
+ cycles. */
+ size_t i;
/* Now sort the strings by length, longest first. */
array = NULL;
@@ -380,7 +386,7 @@ _bfd_elf_strtab_finalize (tab)
{
register hashval_t hash;
unsigned int c;
- unsigned int i;
+ unsigned int j;
const unsigned char *s;
PTR *p;
@@ -389,7 +395,7 @@ _bfd_elf_strtab_finalize (tab)
{
s = e->root.string + e->len - 1;
hash = 0;
- for (i = 0; i < 4; i++)
+ for (j = 0; j < 4; j++)
{
c = *--s;
hash += c + (c << 17);