아래 코드는 DDetours.pas에서 가져온 것입니다. 32 비트 용으로 컴파일하면 경고가 표시되지 않습니다. 여기 dcc64가이 값이 사용되지 않는다고 말하는 이유는 무엇입니까?
[dcc64 Hint] DDetours.pas(1019): H2077 Value assigned to 'Prf' never used
그것은 확실히 처음으로 같은 Prf처럼 나에게 보이는
function GetPrefixesCount(Prefixes: WORD): Byte;
var
Prf: WORD;
i: Byte;
begin
{ Get prefixes count used by the instruction. }
Result := 0;
if Prefixes = 0 then
Exit;
Prf := 0;
i := 0;
Prefixes := Prefixes and not Prf_VEX;
while Prf < $8000 do
begin
Prf := (1 shl i);
if (Prf and Prefixes = Prf) then
Inc(Result);
Inc(i);
end;
end;
문제가되는 기능입니다 (델파이 베를린 업데이트 2)가 64 비트에 대한 컴파일 할 때이 경고를 방출 초기 값이 사용되는 $ 8000과 비교됩니다.
제 생각에 해결책을 장치 상단에 추가하십시오 : {$ IFDEF WIN64} {$ HINTS OFF} // dcc64는이 장치에서 잘못된 힌트를 제공합니다. {$ ENDIF} –
@DavidHeffernan "라이브러리 코드가 힌트와 경고로 가득하기 때문에 힌트와 경고를 사용하여 습관적으로 컴파일러를 사용할 수 있다고 생각하지 않습니다." RTL/VCL/...을 다시 컴파일합니까? 아니면 그렇게 생각하니? –
@StefanGlienke 몇 가지 결함을 해결하기 위해 소수의 VCL 유닛을 다시 컴파일합니다. 모두에 경고와 힌트가 있습니다. 변수를 포함하는 것은 선언되었지만 사용되지는 않았으며, 상징적으로 사용되지 않는 경고가 많이있었습니다. 나는 여전히 XE7에있다. 아마도 그들은 긴축했습니다. –