Compiler Warning (level 3) C4390


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at Compiler Warning (level 3) C4390.

empty controlled statement found; is this the intent?

A semicolon was found after a control statement that contains no instructions.

If you get C4390 because of a macro, you should use the warning pragma to disable C4390 in the module containing the macro.

The following sample generates C4390:

// C4390.cpp  
// compile with: /W3  
int main() {  
   int i = 0;  
   if (i);   // C4390