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