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

Reply via email to