synapse icon indicating copy to clipboard operation
synapse copied to clipboard

Warning W1024 Rising When Combining Signed and Unsigned Types in UpdateCrc32 Function

Open GuilhermeSilva77 opened this issue 7 months ago • 0 comments

The UpdateCrc32 function is generating warning W1024, indicating a combination of signed and unsigned types, resulting in an implicit widening of both operands. This can lead to undesirable or unexpected behavior. The function is:

function UpdateCrc32(Value: Byte; Crc32: Cardinal): Cardinal;
begin
  Result := (Crc32 shr 8)
    xor crc32tab[Byte(Value xor (Crc32 and Integer($000000FF)))];
end;

To resolve this warning, I made this adjustment, and the warning stopped appearing:

Result := (Crc32 shr 8)
  xor Cardinal(Crc32Tab[Byte(Value xor (Crc32 and Integer($000000FF)))]);

GuilhermeSilva77 avatar Jul 19 '24 12:07 GuilhermeSilva77