Looks as if the change below is what's needed; it is modeled on tzcode2013c.
(The 0.5 is only relevant on systems where time_t is some variety of floating point; there may not be any such systems in the wild; the 0.5 should be optimized away by quality compilers on systems where time_t is some variety of integer.)
--ado
*** tzcode2013d/localtime.c 2013-05-28 00:26:18.000000000 -0400
--- tzcode2013e/localtime.c 2013-07-08 16:36:02.036867600 -0400
***************
*** 1514,1522 ****
}
{
register int_fast32_t seconds;
- register time_t half_second = 0.5;
! seconds = tdays * SECSPERDAY + half_second;
tdays = seconds / SECSPERDAY;
rem += seconds - tdays * SECSPERDAY;
}
--- 1514,1521 ----
}
{
register int_fast32_t seconds;
! seconds = tdays * SECSPERDAY + 0.5;
tdays = seconds / SECSPERDAY;
rem += seconds - tdays * SECSPERDAY;
}