Advertencia C6259

El código etiquetado no es accesible: ('expression' & 'constant') en switch-expr no se puede evaluar como 'case-label'

Comentarios

Esta advertencia indica un código inaccesible causado por el resultado de una comparación AND bit a bit (&) en una expresión switch. Solo se puede acceder a la instrucción case que coincide con la constante de la expresión switch; No se puede acceder a todas las demás instrucciones case.

Nombre del análisis de código: DEADCODEINBITORLIMITEDSWITCH

Ejemplo

El código de ejemplo siguiente genera esta advertencia porque la expresión (rand() & 3) "switch" no se puede evaluar como etiqueta de mayúsculas y minúsculas (case 4):

#include <stdlib.h>

void f()
{
     switch (rand () & 3) {
        case 3:
            /* Reachable */
            break;
        case 4:
            /* Not reachable */
            break;
        default:
            break;
    }
}

Para corregir esta advertencia, quite el código inaccesible o compruebe que la constante usada en la instrucción de mayúsculas y minúsculas es correcta. El código siguiente quita la instrucción de mayúsculas y minúsculas inaccesible:

#include <stdlib.h>

void f()
{
     switch (rand () & 3) {
        case 3:
            /* Reachable */
            break;
        default:
            break;
    }
}

Consulte también