Do not use a semicolon on the same line as an if
, for
, or while
statement because this 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 an if statement.
if (a == b); { /* ... */ }
Compliant Solution
It is likely, in this example, that the semicolon was accidentally inserted.
if (a == b) { /* ... */ }
Automated Detection
Klocwork can detect violations of this rule with the SEMICOL checker. See Klocwork Cross Reference
Bibliography
[Hatton 95] Section 2.7.2, "Errors of omission and addition"
[ISO/IEC PDTR 24772] "KOA Likely Incorrect Expressions"
[MITRE 07] CWE ID 480, "Use of Incorrect Operator"
EXP14-C. Beware of integer promotion when performing bitwise operations on chars or shorts 03. Expressions (EXP)