C6259
Aviso C6259: código rotulado é inalcançável: (<expression> & <constant>) no switch expr não é possível avaliar < case-rótulo >
Este aviso indica código inacessível causado pelo resultado do bit a bit- E (&) comparação em uma expressão de switch. A instrução case que coincida com a constante na expressão switch só é alcançável; todas as instruções de casos não estão acessíveis.
Exemplo
O exemplo de código a seguir gera este aviso porque a expressão switch (rand() & 3) não pode ser avaliada como um rótulo case (case 4):
#include <stdlib.h>
void f()
{
switch (rand () & 3) {
case 3:
/* Reachable */
break;
case 4:
/* Not reachable */
break;
default:
break;
}
}
Para corrigir esse aviso, remover o código inacessível ou se a constante utilizada na instrução case está correta. O código a seguir remove a instrução case inacessível:
#include <stdlib.h>
void f()
{
switch (rand () & 3) {
case 3:
/* Reachable */
break;
default:
break;
}
}