Compartir vía


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
   }
}