MISRAC++2008-6-4-1
Synopsis
(Required) An if ( condition ) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement.
Enabled by default
Yes
Severity/Certainty
Low/Low

Full description
There are missing braces in if, else, or else if statements. This check is identical to MISRAC2004-14.9, MISRAC++2008-6-4-1, MISRAC2012-Rule-15.6_c.
Coding standards
- CERT EXP19-C
Use braces for the body of an if, for, or while statement
- CWE 483
Incorrect Block Delimitation
- MISRA C:2004 14.9
(Required) An if expression construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement or another if statement.
- MISRA C:2012 Rule-15.6
(Required) The body of an iteration-statement or a selection-statement shall be acompound-statement
- MISRA C++ 2008 6-4-1
(Required) An if ( condition ) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement.
Code examples
The following code example fails the check and will give a warning:
#include <stdlib.h>
void example(void) {
if (rand());
if (rand());
else;
}
The following code example passes the check and will not give a warning about this issue:
#include <stdlib.h>
void example(void) {
if (rand()) {
}
if (rand()) {
} else {
}
if (rand()) {
} else if (rand()) {
}
}