Merge branch 'blead' of ssh://stevep@perl5.git.perl.org/gitroot/perl into blead
[p5sagit/p5-mst-13.2.git] / pp_sys.c
index f516e33..b42cced 100644 (file)
--- 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);