mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 07:09:29 +02:00
* fix #39664: ensure that the 8- and 16-bit signed overloads of IntToHex return the correct number of digits
+ added test
This commit is contained in:
parent
ee3b5f5a62
commit
d32134dd1a
@ -919,7 +919,7 @@ end;
|
||||
|
||||
function IntToHex(Value: Int8): string;
|
||||
begin
|
||||
Result:=IntToHex(Value, 2*SizeOf(Int8));
|
||||
Result:=IntToHex(LongInt(Value) and $ff, 2*SizeOf(Int8));
|
||||
end;
|
||||
|
||||
function IntToHex(Value: UInt8): string;
|
||||
@ -929,7 +929,7 @@ end;
|
||||
|
||||
function IntToHex(Value: Int16): string;
|
||||
begin
|
||||
Result:=IntToHex(Value, 2*SizeOf(Int16));
|
||||
Result:=IntToHex(LongInt(Value) and $ffff, 2*SizeOf(Int16));
|
||||
end;
|
||||
|
||||
function IntToHex(Value: UInt16): string;
|
||||
|
43
tests/webtbs/tw39664.pp
Normal file
43
tests/webtbs/tw39664.pp
Normal file
@ -0,0 +1,43 @@
|
||||
program tw39664;
|
||||
|
||||
{$mode Delphi}
|
||||
|
||||
uses
|
||||
SysUtils;
|
||||
|
||||
var
|
||||
i8: Int8;
|
||||
i16: Int16;
|
||||
i32: Int32;
|
||||
u32: UInt32;
|
||||
s: String;
|
||||
|
||||
begin
|
||||
i8 := -42;
|
||||
s := IntToHex(i8);
|
||||
writeln(s);
|
||||
if s <> 'D6' then halt(1);
|
||||
|
||||
i16 := -42;
|
||||
s := IntToHex(i16);
|
||||
writeln(s);
|
||||
if s <> 'FFD6' then halt(2);
|
||||
|
||||
i32 := -42;
|
||||
s := IntToHex(i32);
|
||||
writeln(s);
|
||||
if s <> 'FFFFFFD6' then halt(3);
|
||||
|
||||
s := i8.ToHexString;
|
||||
writeln(s);
|
||||
if s <> 'D6' then halt(4);
|
||||
|
||||
s := i16.ToHexString;
|
||||
writeln(s);
|
||||
if s <> 'FFD6' then halt(5);
|
||||
|
||||
s := i32.ToHexString;
|
||||
writeln(s);
|
||||
if s <> 'FFFFFFD6' then halt(6);
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user