Do not use a semicolon on the same line as an if, for, or while statement because it typically indicates programmer error and can result in unexpected behavior.
In this noncompliant code example, a semicolon is used on the same line as an if statement:
if (a == b); {
/* ... */
}
|
It is likely, in this example, that the semicolon was accidentally inserted:
if (a == b) {
/* ... */
}
|
Tool | Version | Checker | Description |
|---|---|---|---|
| CodeSonar | LANG.STRUCT.EBS | Empty branch statement | |
| Klocwork | SEMICOL |
| |
| LDRA tool suite | 11 S, 12 S, 428 S | Fully Implemented | |
| Parasoft C/C++test | 9.5 | CERT-EXP-19 | Fully implemented |
| PRQA QA-C | 3109 |
| SEI CERT Oracle Coding Standard for Java | MSC51-J. Do not place a semicolon immediately following an if, for, or while condition |
| ISO/IEC TR 24772:2013 | Likely Incorrect Expression [KOA] |
| MITRE CWE | CWE-480, Use of incorrect operator |
| [Hatton 1995] | Section 2.7.2, "Errors of Omission and Addition" |