Do not use a semicolon on the same line as after an if
, for
, or while
statement condition because this it typically indicates programmer error and can result in unexpected behavior.
Noncompliant Code Example
In this noncompliant code example, a semicolon is used on the same line as immediately following an if
statement. condition:
Code Block | ||
---|---|---|
| ||
if (a == b); { /* ... */ } |
The statements in the apparent body of the if
statement are always evaluated regardless of the result of the condition expression.
Compliant Solution
It is likely, in this example, that the semicolon was accidentally inserted.This compliant solution eliminates the semicolon and ensures that the body of the if
statement is executed only when the condition expression is true:
Code Block | ||
---|---|---|
| ||
if (a == b) { /* ... */ } |
...
Applicability
Placing a semicolon on the same line as immediately following an if
, for
, or while
statement condition may result in unexpected behavior.
...
Automated Detection
Tool |
---|
Version |
---|
Checker |
---|
Description |
---|
Level
PVS- |
Studio |
low
unlikely
low
P3
L3
Related Guidelines
CERT C Secure Coding Standard | EXP15-C. Do not place a semicolon on the same line as an if, for, or while statement |
"Likely Incorrect Expression [KOA]" |
| V6063 | ||||||||
SonarQube |
| EmptyStatementUsageCheck |
Bibliography
Addition" |
...
MSC04-J. Do not leak memory 49. Miscellaneous (MSC) MSC05-J. Do not exhaust heap space