Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 3) C4414

'function' : krátký přechod na funkci převedenou na blízko

Krátké přeskoky generují kompaktní instrukce, které se větví na adresu v omezeném rozsahu od instrukce. Instrukce obsahuje krátký posun, který představuje vzdálenost mezi přeskakem a cílovou adresou, definicí funkce. Během propojení funkce může být přesunuta optimalizace doby propojení, které způsobují přesunutí funkce z rozsahu dostupného z krátkého posunu. Kompilátor musí vygenerovat speciální záznam pro skok, který vyžaduje, aby instrukce jmp byla BUĎ NEAR nebo FAR. Kompilátor provedl převod.

Například následující kód vygeneruje C4414:

// C4414.cpp
// compile with: /W3 /c
// processor: x86
int DoParityEven();
int DoParityOdd();
unsigned char global;
int __declspec(naked) DoParityEither()
{
   __asm
   {
      test global,0
      jpe SHORT DoParityEven  // C4414
      jmp SHORT DoParityOdd   // C4414
   }
}