V529. Odd semicolon ';' after 'if/for/while' operator

19.11.2010

The analyzer detected a potential error: a semicolon ';' stands after the 'if', 'for' or 'while' operator. For example:

for (i = 0; i < n; i++);
{
  Foo(i);
}

This is the correct code:

for (i = 0; i < n; i++)
{
  Foo(i);
}

Using a semicolon ';' right after the for or while operator is not an error in itself and you may see it quite often in code. So the analyzer eliminates many cases relying on some additional factors. For instance, the following code sample is considered safe:

for (depth = 0, cur = parent; cur; depth++, cur = cur->parent)
  ;
You can look at examples of errors from real projects which were detected by this diagnostic message.