Avertissement du compilateur (niveau 4) C4702
Code inaccessible
Lorsque le serveur principal du compilateur détecte du code inaccessible, il génère un avertissement C4702 en tant qu’avertissement de niveau 4.
Pour résoudre cet avertissement, supprimez le code inaccessible ou assurez-vous que tout le code source est accessible par un flux d’exécution.
Exemples
L’exemple suivant génère l’erreur C4702. Pour résoudre ce problème, supprimez le code inaccessible.
// C4702.cpp
// compile with: /W4
#include <stdio.h>
int main() {
return 1;
printf_s("I won't print.\n"); // C4702 unreachable
}
L’erreur C4702 peut se produire dans certaines versions du compilateur lorsque vous compilez à l’aide des /GX
fonctions , ou /EHac
/EHc
/EHsc
options, et utilisez extern "C"
des fonctions. Étant donné que le compilateur suppose que les extern "C"
fonctions ne lèvent pas, le bloc catch n’est pas accessible. Si vous pensez que cet avertissement n’est pas valide, car une fonction peut lever, compiler avec /EHa
ou /EHs
, selon l’exception levée.
Pour plus d’informations, consultez /EH
(Modèle de gestion des exceptions).
L’exemple suivant génère l’erreur 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
}
}