This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Paul Eggert wrote:
/* time_t is always 'long int' in the GNU C Library. */ #define TIME_T_MIN LONG_MIN #define TIME_T_MAX LONG_MAX static inline bool fits_in_time_t (__time64_t t) { #if 7 <= __GNUC__ return !__builtin_add_overflow_p (t, 0, TIME_T_MAX); #endif return TIME_T_MIN <= t && t <= TIME_T_MAX; }
Marc Glisse suggested a simpler solution: static inline bool fits_in_time_t (__time64_t t) { return t == (time64_t) t; }This is documented to work for GCC, something I had forgotten, and it generates better code for pre-7 GCC. See:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82170#c2
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |