While I have avoided this for a while because these problems virtually
always prove to be operator error, I guess I have to add my two cents now.
Try adding (int) before the 0. If this gives you back the conditional jump
then somehow 0 has been #defined, pragma’d, or compile flaged as an unsigned
value. This would cause the int value to be promoted to unsigned as well and
cause an infinite loop. All without a compiler bug.
int iCount;
for(iCount = 3; iCount >= (int)0; iCount–)
{
blah… blah…
}