Partager via


C6259

avertissement C6259 : impossible d'atteindre le code étiqueté : (<expression> & <constante>) dans un switch-expr ne peut pas prendre la valeur <ÉtiquetteCase>

Cet avertissement indique un code inaccessible provoqué par le résultat d'une comparaison d'opérations de bits AND (&) dans une expression de switch. Seule l'instruction case correspondant à la constante dans l'expression de switch est accessible ; toutes les autres instructions case ne le sont pas.

Exemple

L'exemple de code suivant génère cet avertissement car l'expression switch (rand() & 3) ne peut pas correspondre à l'étiquette case (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

Référence

switch Statement (C++)

switch Statement (C)