I don\'t get this one!
#include
int main()
{
unsigned short t1 = 0, t2 = 0;
if( t1 < t2-1 )
printf(\" t1 < t2-1\\n\");
-1 is represented as all 1s. Therefore when interpreted as unsigned, its value is 2^32-1, which is clearly greater than 0. I'd guess that the first comparison is getting expanded to perform 32-bit signed arithmetic (perhaps due to the "1" being a signed int).
Note that the following WILL get to the printf, because the comparison is now done in 16-bit unsigned space again:
u32 temp = t2 - 1;
if( t1 < temp )
printf(" t1 < t2-1\n");