﻿ V6031. The variable 'X' is being used for this loop and for the outer loop.  # V6031. The variable 'X' is being used for this loop and for the outer loop.

The analyzer detected a potential error: a nested loop utilizes a variable as its counter, which is also used in an outer loop.

In a schematic form, this error looks in the following way:

``````int i = 0, j = 0;
for (i = 0; i < 5; i++)
for (i = 0; i < 5; i++)
arr[i][j] = 0;``````

Of course, this is an artificial sample, so we may easily see the error, but in a real application, the error might be not so apparent. This is the correct code:

``````int i = 0, j = 0;
for (i = 0; i < 5; i++)
for (j = 0; j < 5; j++)
arr[i][j] = 0;``````

Using one variable both for the outer and inner loops is not always a mistake. Consider a sample of correct code the analyzer won't generate the warning for:

``````for (c = lb; c <= ub; c++)
{
if (!(xlb <= calc(c) && calc(c) <= ub))
{
Range r = new Range(xlb, xlb + 1);
for (c = lb + 1; c <= ub; c++)
r = DoUnion(r, new Range(calc(c), calc(c) + 1));
return r;
}
}``````

In this code, the inner loop "for (c = lb + 1; c <= ub; c++)" utilizes the "c" variable as a counter. The outer loop also uses the "c" variable. But there is no error here. After the inner loop is executed, the "return r;" operator will perform exit from the function.

This diagnostic is classified as:

 CWE-691CERT-MSC57-J

427
14 526

### Do you make errors in the code?

Check your code
with PVS-Studio

Static code analysis
for C, C++, C# and Java This website uses cookies and other technology to provide you a more personalized experience. By continuing the view of our web-pages you accept the terms of using these files. If you don't want your personal data to be processed, please, leave this site. Learn More →