Advertencia del compilador (nivel 4) C4702
no se puede tener acceso al código
Cuando el back-end del compilador detecta código inaccesible, genera la advertencia C4702 como una advertencia de nivel 4.
Para solucionar esta advertencia, quite el código inaccesible o asegúrese de que algún flujo de ejecución puede acceder a todo el código fuente.
Ejemplos
El ejemplo siguiente genera la advertencia C4702. Para corregirla, quite el código inaccesible.
// C4702.cpp
// compile with: /W4
#include <stdio.h>
int main() {
return 1;
printf_s("I won't print.\n"); // C4702 unreachable
}
El error C4702 puede producirse en algunas versiones del compilador cuando se compila con las opciones /GX
, /EHc
, /EHsc
o /EHac
y se usan funciones extern "C"
. Como el compilador presupone que las funciones extern "C"
no se iniciarán, no se puede acceder al bloque catch. Si considera que esta advertencia no es válida porque una función se puede iniciar, realice la compilación con /EHa
o /EHs
, en función de la excepción generada.
Para más información, consulte /EH
(Modelo de control de excepciones).
El ejemplo siguiente genera la advertencia 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
}
}