V3028. Consider inspecting the 'for' operator. Initial and final values of the iterator are the same.


The analyzer has detected a potential error: initial and finite counter values coincide in the 'for' operator. Using the 'for' operator in such a way will cause the loop to be executed only once or not be executed at all. Consider the following example:

void BeginAndEndForCheck(int beginLine, int endLine)
{
  for (int i = beginLine; i < beginLine; i++)
  {
   ... 
  }

The loop body is never executed. Most likely, there is a misprint and "i < beginLine" should be replaced with the correct expression "i < endLine". This is the correct code:

for (int i = beginLine; i < endLine; i++)
{
  ... 
}

Another example:

for (int i = A; i <= A; i++) 
  ...

This loop's body will be executed only once. This is probably not what the programmer intended.

According to Common Weakness Enumeration, potential errors found by using this diagnostic are classified as CWE-691.

You can look at examples of errors detected by the V3028 diagnostic.


Bugs Found

Checked Projects
367
Collected Errors
13 552