X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pp_sys.c;h=b42cced0e2d7d53fe2a1c89b83b50094185410ce;hb=3dae3b3445810204b098aa3420cb5d43bf991d8b;hp=f516e3332d5c3e8e3640ca3df7742458bcff27ee;hpb=f325df1b4578ec6fa0ef2a8b824f93439fcce816;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pp_sys.c b/pp_sys.c index f516e33..b42cced 100644 --- a/pp_sys.c +++ b/pp_sys.c @@ -4464,9 +4464,9 @@ PP(pp_gmtime) using a double causes an unfortunate loss of accuracy on high numbers. What we really need is an SvQV. */ - double input = POPn; + double input = Perl_floor(POPn); when = (Time64_T)input; - if( when != input ) { + if (when != input && ckWARN(WARN_OVERFLOW)) { Perl_warner(aTHX_ packWARN(WARN_OVERFLOW), "%s(%.0f) too large", opname, input); } @@ -4478,7 +4478,7 @@ PP(pp_gmtime) err = gmtime64_r(&when, &tmbuf); #endif - if( err == NULL ) { + if (err == NULL && ckWARN(WARN_OVERFLOW)) { /* XXX %lld broken for quads */ Perl_warner(aTHX_ packWARN(WARN_OVERFLOW), "%s(%.0f) failed", opname, (double)when);