C6259

Note

This article applies to Visual Studio 2015. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

warning C6259: labeled code is unreachable: (<expression> & <constant>) in switch-expr cannot evaluate to <case-label>

This warning indicates unreachable code caused by the result of a bitwise-AND (&) comparison in a switch expression. The case statement that matches the constant in the switch expression is only reachable; all other case statements are not reachable.

Example

The following sample code generates this warning because the expression switch``(rand() & 3) cannot 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;  
    }  
}  

See Also

switch Statement (C++)
switch Statement