The analyzer has detected a possible error that has to do with using suspicious initial and final values of the counter variable in a 'for' statement. This may break the logic of execution.
Consider the following example of suspicious code:
int c = 0; if (some_condition) { .... c = 1; } for (int i = 0; i < c; ++i) { .... }
The loop will iterate either 0 or 1 time; therefore, it can be replaced with an 'if' statement.
int c = 0; if (some_condition) { .... c = 1; } if (c != 0) { .... }
There could also be a mistake in the expression evaluating the value of the variable that the loop counter is compared with. For example, the programmer could have actually meant the following:
int c = 0; if (some_condition) { .... c = 1 + n; } for (int i = 0; i < c; ++i) { .... }
This diagnostic is classified as:
You can look at examples of errors detected by the V1008 diagnostic. |