This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Gcc 4.2 miscompiles binutils on x86 and x86-64
- From: "H. J. Lu" <hjl at lucon dot org>
- To: Andreas Schwab <schwab at suse dot de>
- Cc: Alexandre Oliva <aoliva at redhat dot com>, R Hill <dirtyepic dot sk at gmail dot com>, Nick Clifton <nickc at redhat dot com>, binutils at sources dot redhat dot com, gcc at gcc dot gnu dot org
- Date: Sun, 30 Apr 2006 07:27:49 -0700
- Subject: Re: Gcc 4.2 miscompiles binutils on x86 and x86-64
- References: <or4q2gsou6.fsf@free.oliva.athome.lsd.ic.unicamp.br> <20060302183313.GB29439@lucon.org> <orzmk8r8jl.fsf@free.oliva.athome.lsd.ic.unicamp.br> <44081538.7070304@redhat.com> <4453042B.3040005@gmail.com> <20060429145053.GA3225@lucon.org> <or3bfwushl.fsf@free.oliva.athome.lsd.ic.unicamp.br> <20060429235415.GA6521@lucon.org> <jeslnvwbmf.fsf@sykes.suse.de>
On Sun, Apr 30, 2006 at 01:23:20PM +0200, Andreas Schwab wrote:
> "H. J. Lu" <hjl@lucon.org> writes:
>
> > It looks like a gcc bug to me. Gcc 4.2 miscompiles:
> >
> > more_than_enough_bits_for_digits
> > = (number_of_digits_to_use * 3321928 / 1000000 + 1);
> >
> > in atof_generic. When number_of_digits_to_use == 1, gcc 4.2 -O2 gets
> > more_than_enough_bits_for_digits as 4. The correct value is 37.
>
> Why do you think 3321928 / 1000000 == 36?
>
It should be number_of_digits_to_use == 11. Just get binutils from
CVS and run "make check" in gas if you want to see it yourselves.
H.J.