[libc-commits] [libc] 16a5f7e - [libc] Fix implict cast to time_t warning (#126947)

via libc-commits libc-commits at lists.llvm.org
Wed Feb 12 10:08:10 PST 2025


Author: Michael Jones
Date: 2025-02-12T10:08:06-08:00
New Revision: 16a5f7eb73f225544d29e613c84011f1e1ec53a4

URL: https://github.com/llvm/llvm-project/commit/16a5f7eb73f225544d29e613c84011f1e1ec53a4
DIFF: https://github.com/llvm/llvm-project/commit/16a5f7eb73f225544d29e613c84011f1e1ec53a4.diff

LOG: [libc] Fix implict cast to time_t warning (#126947)

On some systems time_t is 32 bit, causing build errors (with -Werror)
in get_epoch which attempts to implicitly convert an int64_t to a
time_t.

Fixes:

error: implicit conversion loses integer precision: 'int64_t' (aka 'long
long') to 'time_t' (aka 'int') [-Werror,-Wshorten-64-to-32]
      332 |     return mktime_internal(timeptr);
          |     ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~

Added: 
    

Modified: 
    libc/src/time/time_utils.h

Removed: 
    


################################################################################
diff  --git a/libc/src/time/time_utils.h b/libc/src/time/time_utils.h
index 324e129f6f780..68eaac8c04f11 100644
--- a/libc/src/time/time_utils.h
+++ b/libc/src/time/time_utils.h
@@ -328,7 +328,9 @@ class TMReader final {
     return BASE_YEAR + IS_NEXT_YEAR;
   }
 
-  LIBC_INLINE time_t get_epoch() const { return mktime_internal(timeptr); }
+  LIBC_INLINE time_t get_epoch() const {
+    return static_cast<time_t>(mktime_internal(timeptr));
+  }
 
   // returns the timezone offset in microwave time:
   // return (hours * 100) + minutes;


        


More information about the libc-commits mailing list