Main Content

MISRA C++:2008 Rule 6-4-8

Every switch statement shall have at least one case-clause

Description

Rule Definition

Every switch statement shall have at least one case-clause.

Rationale

A switch statement that does not have any case-clauses always results in the default-clause. This behavior is redundant if intentional. If unintentional, a missing case-clause might cause unexpected results. Always provide at least one case-clause to avoid redundancy. If no case-clause is needed, replace or remove the switch statement.

Polyspace Implementation

Polyspace® raises this defect whenever a switch statement contains no case-clause.

Troubleshooting

If you expect a rule violation but Polyspace does not report it, see Diagnose Why Coding Standard Violations Do Not Appear as Expected.

Examples

expand all

#include <cstdint>

int x = 10;

int example(int x)	 
{
    switch (x) { //Noncompliant

    default:
        x = 0;
        break;
    }

    return x;
}

Because the switch statement contains only a default clause and no case-clause, Polyspace marks it as noncompliant.

Check Information

Group: Statements
Category: Required

Version History

Introduced in R2013b