summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/webtbs/tw4768.pp
blob: a69d86e8ceeae85cd6d045a9e0fe950a8c09395c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
{ %OPT=-O1 }

{ Source provided for Free Pascal Bug Report 4768 }
{ Submitted by "Martin Schreiber" on  2006-02-04 }
{ e-mail:  }
program project1;
{$ifdef FPC}{$mode objfpc}{$h+}{$INTERFACES CORBA}{$endif}
{$ifdef mswindows}{$apptype console}{$endif}
uses
 sysutils;
 
function later(ref,act: cardinal): boolean;
begin
 result:= not(integer(act-ref) < 0);
end;

function later1(ref,act: cardinal): boolean;
begin
 result:= integer(act-ref) >= 0;
end;

function later2(ref,act: cardinal): boolean;
var
 ca1: cardinal;
begin
 ca1:= act-ref;
 writeln(integer(ca1));
 result:= integer(ca1) >= 0;
end;

function later3(ref,act: cardinal): boolean;
begin
 result:= not(cardinal(ref+act) < 0);
end;

function later4(ref,act: cardinal): boolean;
begin
 result:= cardinal(act+ref) >= 0;
end;

var
 ca1,ca2: cardinal;
 
begin
 ca1:= $7fffffff;
 ca2:= $80000001;
 if not(later(ca1,ca2)) then
   halt(1);
 if not(later1(ca1,ca2)) then
   halt(1);
 if not(later2(ca1,ca2)) then
   halt(1);
 if not(later3(ca1,ca2)) then
   halt(1);
 if not(later4(ca1,ca2)) then
   halt(1);
end.