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.

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

Tool

Version

Checker

Description

CodeSonarLANG.STRUCT.EBSEmpty branch statement
Klocwork

SEMICOL

 

LDRA tool suite11 S, 12 S, 428 SFully Implemented
Parasoft C/C++test9.5CERT-EXP-19Fully implemented
PRQA QA-C3109 

Related Guidelines

SEI CERT Oracle Coding Standard for JavaMSC51-J. Do not place a semicolon immediately following an if, for, or while condition
ISO/IEC TR 24772:2013Likely Incorrect Expression [KOA]
MITRE CWECWE-480, Use of incorrect operator

Bibliography

[Hatton 1995]Section 2.7.2, "Errors of Omission and Addition"