...
The LDRA tool suite V 7.6.0 is able to detect violations of this recommendation.
Compass/ROSE could can detect some violations of this recommendation by examining every switch statement and ensuring that it has a default
clause. (One might forgive a switch statement over an enumerated type that has a clause for every possible value, but as noted above, this statement becomes unsafe if the set of possible values changes.) . In particular it flags switch statements that do not have a default clause. ROSE should also detect 'fake switches' as well...that is a chain of if
statements each checking the value of the same variable. These if statements should always end in an 'else' clause, or they should mathematically cover every possibility. For instance:
...