Aviso do compilador (nível 4) C4702
código inacessível
Quando o back-end do compilador detecta código inacessível, ele gera C4702 como um aviso de nível 4.
Para resolver esse aviso, remova o código inacessível ou garanta que todo o código-fonte esteja acessível por algum fluxo de execução.
Exemplos
O exemplo a seguir gera o aviso C4702. Para corrigi-lo, remova o código inacessível.
// C4702.cpp
// compile with: /W4
#include <stdio.h>
int main() {
return 1;
printf_s("I won't print.\n"); // C4702 unreachable
}
O erro C4702 pode ocorrer em algumas versões do compilador quando você compilar usando as opções /GX
, /EHc
, /EHsc
ou /EHac
e usar funções extern "C"
. Como o compilador pressupõe que as funções extern "C"
não são lançadas, o bloco catch não é acessível. Se você achar que esse aviso não é válido porque uma função pode lançar, faça a compilação com /EHa
ou /EHs
, dependendo da exceção gerada.
Para obter mais informações, consulte /EH
(Modelo de tratamento de exceções).
O seguinte exemplo gera o aviso C4702:
// C4702b.cpp
// compile with: /W4 /EHsc
#include <iostream>
using namespace std;
extern "C" __declspec(dllexport) void Function2(){}
int main() {
try {
Function2();
}
catch (...) {
cout << "Exp: Function2!" << endl; // C4702
}
}