C6293

warning C6293: Ill-defined for-loop: counts down from minimum

This warning indicates that a for-loop might not function as intended. It occurs when a loop counts down from a minimum, but has a higher termination condition.

A signed —or unsigned—index variable together with a negative increment will cause the loop to count negative until an overflow occurs. This will terminate the loop.

Example

The following sample code generates this warning:

void f( )
{
   signed char i;
   
   for (i = 0; i < 100; i--)
   {
      // code ...
   }
}

To correct this warning, use the following code:

void f( )
{
   signed char i;
   
   for (i = 0; i < 100; i++)
   {
      // code ...
   }
}