컴파일러 경고(수준 3) C4414
'function': near로 변환된 함수로 짧은 점프
짧은 점프는 명령에서 제한된 범위 내의 주소로 분기하는 압축 명령을 생성합니다. 명령에는 점프와 대상 주소, 함수 정의 사이의 거리를 나타내는 짧은 오프셋이 포함됩니다. 연결하는 동안 함수를 이동하거나 링크 시간 최적화를 적용하여 짧은 오프셋에서 연결할 수 있는 범위 밖으로 함수를 이동할 수 있습니다. 컴파일러는 점프에 대한 특수 레코드를 생성해야 합니다. 이 경우 jmp 명령이 NEAR 또는 FAR여야 합니다. 컴파일러가 변환을 했습니다.
예를 들어 다음 코드는 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
}
}