The body of an iteration-statement or a selection-statement shall be a compound statement
The body of an iteration-statement or a selection-statement shall be a compound- statement.
If the block of code associated with an iteration or selection statement is not contained in braces, you can make mistakes about the association. For example:
You can wrongly associate a line of code with an iteration or selection statement because of its indentation.
You can accidentally place a semicolon following the iteration or selection statement. Because of the semicolon, the line following the statement is no longer associated with the statement even though you intended otherwise.
This checker enforces the practice of adding braces following a selection or iteration statement even for a single line in the body. Later, when more lines are added, the developer adding them does not need to note the absence of braces and include them.
The checker flags for loops where the first token following a
for statement is not a left brace, for
instance:
for (i=init_val; i > 0; i--)
if (arr[i] < 0)
arr[i] = 0;if, else if,
else, switch, for and
do..while statements.The second line of the message on the Result Details pane
indicates which statement is violating the rule. For instance, in the preceding
example, there are two violations. The second line of the message points to the
for loop for one violation and the if
condition for another.
The else keyword shall be followed by either a compound statement, or another if statement.
An if (expression) construct shall be followed by a compound statement.
The statement forming the body of a while statement shall be a compound statement.
The statement forming the body of a do ... while statement shall be a compound statement.
The statement forming the body of a for statement shall be a compound statement.
The statement forming the body of a switch statement shall be a compound statement.
If you expect a rule violation but do not see it, refer to the documentation of Polyspace® Code Prover™ or Polyspace Code Prover Server™.
| Group: Control Flow |
| Category: Required |
| AGC Category: Required |