Warning C6259
Labeled code is unreachable: ('expression' & 'constant') in switch-expr cannot evaluate to 'case-label'
Remarks
This warning indicates unreachable code caused by the result of a bitwise-AND (&
) comparison in a switch expression. Only the case statement that matches the constant in the switch expression is reachable; all other case statements aren't reachable.
Code analysis name: DEADCODEINBITORLIMITEDSWITCH
Example
The following sample code generates this warning because the 'switch' expression (rand() & 3)
can't evaluate to case label (case 4
):
#include <stdlib.h>
void f()
{
switch (rand () & 3) {
case 3:
/* Reachable */
break;
case 4:
/* Not reachable */
break;
default:
break;
}
}
To correct this warning, remove the unreachable code or verify that the constant used in the case statement is correct. The following code removes the unreachable case statement:
#include <stdlib.h>
void f()
{
switch (rand () & 3) {
case 3:
/* Reachable */
break;
default:
break;
}
}