';' : empty controlled statement found; is this the intent?
A semicolon is found after a control statement that contains no instructions.
If you get C4390 because of a macro, you should either use warning pragma to disable c4390 in the module where the macro is or use __pragma to specify the warning pragma inside the macro to disable and then reenable the warningC4390.
Example
if (condition); // note extra semi-colon statement; // intended to execute only if <cond> is true