Tony Finch wrote:
+ if (INTMAX_MAX / SECSPER400YEARS < diff400)
+ return absolute_max_time; I think this is a constraint violation on 32 bit systems that don't have long long (e.g. C89), so it ought to cause a compilation error.
Thanks for the review. Hmm, I don't see any constraint violation there. Although that expression contains no variables and always returns the same value, in the C standard a "constant expression" is an expression that's *required* to be a constant, which is something slightly different. As the standard doesn't require this expression to be a constant, no constraint is being violated here, and a C implementation is required to compile and run the program. Likewise for the other use of SECSPER400YEARS. We may run into compilers that complain anyway, but I'd rather wait until that happens before worrying about it.