C6259
Aggiornamento: novembre 2007
C6259
avviso C6259: il codice con etichetta non è eseguibile: (<espressione> & <costante>) in una espressione switch non in grado di restituire <etichetta-case>
L'avviso indica codice non eseguibile determinato dal risultato di un confronto AND bit per bit (&) in un'espressione switch. Solo l'istruzione case che corrisponde alla costante nell'espressione switch è eseguibile. Tutte le altre istruzioni case non lo sono.
Esempio
Nell'esempio di codice riportato di seguito viene generato questo avviso in quanto l'espressione switch(rand() & 3) non è in grado di restituire l'etichetta case (case 4):
#include <stdlib.h>
void f()
{
switch (rand () & 3) {
case 3:
/* Reachable */
break;
case 4:
/* Not reachable */
break;
default:
break;
}
}
Per risolvere il problema, rimuovere il codice non eseguibile oppure verificare che la costante utilizzata nell'istruzione case sia corretta. Il codice seguente rimuove l'istruzione case non eseguibile:
#include <stdlib.h>
void f()
{
switch (rand () & 3) {
case 3:
/* Reachable */
break;
default:
break;
}
}