On Sat Mar 23 21:15:58 2013, sisyphus wrote: > This is a bug report for perl from sisyphus1@optusnet.com.au, > generated with the help of perlbug 1.39 running under perl 5.17.10. > > > ----------------------------------------------------------------- > [Please describe your issue here] > > I don't know if this bug was present in 5.17.9 (and/or earlier). > It affects only my 64-bit build of 5.17.10. My 32-bit builds, > including the 64int build, are fine. > > Perl correctly evaluates 2**1e15 as infinity. > But it evaluates 2**1e16 as 0. For exponents greater than 16, 0 > is also returned. (This shows up in one of the > t/op/sprintf2.t tests as a 'divide-by-zero' error.) sisyphus can you make a preprocessed (.i) ("-E" for GCC) file of pp.c and attach it to this ticket? Use same exactly the same cmd line options that were used in the build. I want to see if it was macro-defed to something else. A .s asm file made with -S should do it. What OS version are you using? A couple of things could have happened. New GCC has inlined pow() which is not IEEE 754, or uses 80 bit precision (not likely on Win64, since x87 is "deprecated" according to MS) for intermediate results, throws and catches FP exceptions, uses 128 bit software precision or libmingwex or libgcc are supplying a pow(), and those take priority over the MS c lib's pow(). -- bulk88 ~ bulk88 at hotmail.com --- via perlbug: queue: perl5 status: rejected https://rt.perl.org:443/rt3/Ticket/Display.html?id=117315Thread Previous | Thread Next