This diagnostic rule is based on the software development guidelines developed by MISRA (Motor Industry Software Reliability Association).
This diagnostic varies for C and C++. In the C language, every 'switch' statement should have at least two non-empty labels, such as 'case' or 'default'. In the C++ language, every 'switch' statement should have at least one non-empty label 'case'.
'switch' constructs that do not meet these requirements are redundant and may indicate a programming mistake.
Example 1:
void example_1(int param)
{
switch(param)
{
case 0:
default:
Func();
break;
}
}
This 'switch' is redundant and meaningless. No matter the value of 'param', only the body of the 'default' label will be executed.
The following example does not trigger the warning:
void example_2(int param)
{
switch(param)
{
case 0:
DoSmth1();
break;
case 1:
DoSmth2();
break;
....
default:
Func();
break;
}
}
Here is an example where the analyzer issues the warning only when using a C compiler:
void example_3(int param)
{
switch(param)
{
case 10:
case 42:
DoMath();
break;
}
}
This diagnostic is classified as:
|
Was this page helpful?
Your message has been sent. We will email you at
If you do not see the email in your inbox, please check if it is filtered to one of the following folders:
Take
a chance!