mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 08:09:33 +02:00
40 lines
711 B
ObjectPascal
40 lines
711 B
ObjectPascal
{$mode objfpc}
|
|
{$R+}
|
|
|
|
type Tconstexprint=record
|
|
overflow:boolean;
|
|
case signed:boolean of
|
|
false:
|
|
(uvalue:qword);
|
|
true:
|
|
(svalue:int64);
|
|
end;
|
|
|
|
operator := (const u:qword):Tconstexprint;
|
|
begin
|
|
if (u<>high(int64)+100) then
|
|
halt(1);
|
|
result.overflow:=false;
|
|
result.signed:=false;
|
|
result.uvalue:=u;
|
|
end;
|
|
|
|
operator := (const s:int64):Tconstexprint;
|
|
begin
|
|
if (s<>-128) then
|
|
halt(2);
|
|
result.overflow:=false;
|
|
result.signed:=true;
|
|
result.svalue:=s;
|
|
end;
|
|
|
|
|
|
var
|
|
value : tconstexprint;
|
|
begin
|
|
// Here it should choose the int64 code instead of qword
|
|
value:=-128;
|
|
// Here it should choose the qword
|
|
value:=high(int64)+100;
|
|
end.
|