While I can understand why timespec_sign will never return a negative value on platforms whose time_t is unsigned, this is at least worth a note in the commentary to that function. Evidently, even experts such as Paul Eggert trip on these corner cases, see
http://git.savannah.gnu.org/cgit/emacs.git/commit/src/msdos.c?h=emacs-25&id=ccdaf04cfdaa42fb85d456274405cce32ee9f5d4 Thanks.