/* symtab.c
- Copyright 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999-2020 Free Software Foundation, Inc.
This file is part of GNU Binutils.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
+ the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
/* Remove duplicate entries to speed-up later processing and
set end_addr if its not set yet. */
- prev_addr = tab->base[0].addr + 1;
+ prev_addr = tab->base[0].addr - 1;
for (src = dst = tab->base; src < tab->limit; ++src)
{
&& ((src->is_func && !dst[-1].is_func)
|| ((src->is_func == dst[-1].is_func)
&& ((src->name[0] != '_' && dst[-1].name[0] == '_')
- || (src->name[0]
+ || (src->name[0] == '_' && dst[-1].name[0] == '_'
&& src->name[1] != '_'
&& dst[-1].name[1] == '_'))))))
{
if (tab->len > 0 && dst[-1].end_addr == 0)
dst[-1].end_addr
- = core_text_sect->vma + bfd_get_section_size (core_text_sect) - 1;
+ = core_text_sect->vma + bfd_section_size (core_text_sect) - 1;
DBG (AOUTDEBUG | IDDEBUG,
printf ("[symtab_finalize]: removed %d duplicate entries\n",
for (j = 0; j < tab->len; ++j)
{
printf ("[symtab_finalize] 0x%lx-0x%lx\t%s\n",
- (long) tab->base[j].addr, (long) tab->base[j].end_addr,
- tab->base[j].name);
+ (unsigned long) tab->base[j].addr,
+ (unsigned long) tab->base[j].end_addr,
+ tab->base[j].name);
}
);
}
Sym *
dbg_sym_lookup (Sym_Table *sym_tab, bfd_vma address)
{
- long low, mid, high;
+ unsigned long low, mid, high;
Sym *sym;
fprintf (stderr, "[dbg_sym_lookup] address 0x%lx\n",