Make asection->id and asection->index unsigned

Alan Modra amodra@gmail.com
Mon Aug 31 10:58:00 GMT 2015
On Mon, Aug 31, 2015 at 12:12:39PM +0200, Andreas Schwab wrote:
> Alan Modra <amodra@gmail.com> writes:
> 
> > diff --git a/bfd/elflink.c b/bfd/elflink.c
> > index 192ce15..4f86700 100644
> > --- a/bfd/elflink.c
> > +++ b/bfd/elflink.c
> > @@ -3247,7 +3247,7 @@ elf_sort_symbol (const void *arg1, const void *arg2)
> >      return vdiff > 0 ? 1 : -1;
> >    else
> >      {
> > -      long sdiff = h1->root.u.def.section->id - h2->root.u.def.section->id;
> > +      int sdiff = h1->root.u.def.section->id - h2->root.u.def.section->id;
> 
> Can this overflow?

If it could, then it would have overflowed before when "id" was
"int".  Since the expression will overflow only when ld has allocated
2G sections, I think you would kill the process long before that
happens.. 

-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list