The value of expression 'thistimecnt >> 31 >> 31 >> 2' (in zic.c) is zero regardless of the value of the left operand 'thistimecnt', because it is shifted by 64 (in total) bits, which is greater or equal to its size of 64 bits. Maybe this was what was meant? thistimecnt >> 31 >> 2