Поделиться через


Предупреждение компилятора (уровень 4) C4702

неустранимый код

Когда внутренний элемент компилятора обнаруживает неподдерживаемый код, он создает предупреждение C4702 в виде предупреждения уровня 4.

Чтобы устранить это предупреждение, удалите недоступный код или убедитесь, что весь исходный код доступен некоторым потоком выполнения.

Примеры

В следующем примере возникает ошибка C4702. Чтобы исправить его, удалите неустранимый код.

// C4702.cpp
// compile with: /W4
#include <stdio.h>

int main() {
   return 1;
   printf_s("I won't print.\n");   // C4702 unreachable
}

Ошибка C4702 может возникать в некоторых версиях компилятора при компиляции с помощью /GX/EHc/EHscпараметров или /EHac параметров и использования extern "C" функций. Так как компилятор предполагает, что extern "C" функции не вызываются, блок catch недоступен. Если вы считаете, что это предупреждение недопустимо, так как функция может вызывать, компилировать или /EHa/EHsв зависимости от исключения.

Дополнительные сведения см. в разделе /EH (Модель обработки исключений)

Следующий пример приводит к возникновению ошибки 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
   }
}