On 28/11/14 13:32, Ondřej Bílka wrote: > On Thu, Nov 27, 2014 at 08:37:59PM -0800, Paul Eggert wrote: >> Pádraig Brady wrote: >>> Are these checks backed up by corresponding replacement code? >>> Are these checks correct? >>> Why has glibc not been updated in the 7 years since the checks were added? >> >> As I recall, this comes from an old dispute about what glibc should >> do when asked to print floating-point bit-patterns that cannot be >> generated by the machine's floating-point operations. This has >> undefined behavior in glibc (and POSIX allows this), but undefined >> behavior can be catastrophic in programs like 'od' which will crash >> when asked to print arbitrary data as if it were floating-point. So >> coreutils insists on a substitute for printf for this situation. >> >> See the thread starting here: >> >> http://lists.gnu.org/archive/html/bug-gnulib/2007-06/msg00046.html > >>From bug ticket pseudo zero patterns were fixed by > > 2007-06-06 Jakub Jelinek <[email protected]> > > [BZ #4586] > * sysdeps/i386/ldbl2mpn.c (__mpn_extract_long_double): Treat > pseudo-zeros as zero. > * sysdeps/x86_64/ldbl2mpn.c: New file. > * sysdeps/ia64/ldbl2mpn.c: New file. > > You could write patch to handle pseudo-infinity as well.
Yes, glibc could definitely improve here. I've logged: https://sourceware.org/bugzilla/show_bug.cgi?id=17661 thanks, Pádraig.
