Dave Mitchell <[EMAIL PROTECTED]> writes: > On Tue, Dec 13, 2005 at 03:38:46AM -0800, Gisle Aas wrote: > > -# check %NNN$ for range bounds, especially negative 2's complement > > +# check overflows > > +for (int(~0/2+1), ~0, ~0 + 1, ~0 + 2, "9999999999999999999") { > ^^^^^^ > > + is(eval {sprintf "%${_}d", 0}, undef, "no sprintf result expected > > %${_}d"); > > This fails on my 64-bit system with 'out of memory' errors: > > > $ ./perl -le 'print ~0' > 18446744073709551615 > $ ./perl -le 'print ~0+2' > 1.84467440737096e+19 > $ > > so the format string becomes "%1.84467440737096e+19d", and sprintf tries > to do a very large precision %e by accident.
Sorry. Change 26342 corrects this and the test now passes when I build perl with -Duse64bitint on my 32 bit system. Hope it works for you too. --Gisle