Avertissement C6259

Le code étiqueté n’est pas accessible : ('expression' & 'constante') dans switch-expr ne peut pas évaluer 'case-label'

Notes

Cet avertissement indique un code inaccessible provoqué par le résultat d’une comparaison bitwise-AND (&) dans une expression switch. Seule l’instruction case qui correspond à la constante dans l’expression switch est accessible ; toutes les autres instructions case ne sont pas accessibles.

Nom de l’analyse du code : DEADCODEINBITORLIMITEDSWITCH

Exemple

L’exemple de code suivant génère cet avertissement, car l’expression (rand() & 3) « switch » ne peut pas évaluer l’étiquette de casse (case 4) :

#include <stdlib.h>

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

Pour corriger cet avertissement, supprimez le code inaccessible ou vérifiez que la constante utilisée dans l’instruction case est correcte. Le code suivant supprime l’instruction case inaccessible :

#include <stdlib.h>

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

Voir aussi