mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 22:49:37 +02:00
* test extended
This commit is contained in:
parent
ccc9c93fc7
commit
cd39c5052b
@ -1,11 +1,22 @@
|
||||
{ Old file: tbs0193.pp }
|
||||
{ overflow checking for 8 and 16 bit operations wrong }
|
||||
|
||||
{$mode objfpc}
|
||||
|
||||
uses sysutils;
|
||||
|
||||
procedure doerror(l: longint);
|
||||
begin
|
||||
writeln('error near ',l);
|
||||
halt(1);
|
||||
end;
|
||||
|
||||
{$R-}
|
||||
{$Q+}
|
||||
var i: integer;
|
||||
b: byte;
|
||||
|
||||
l: longint;
|
||||
c: cardinal;
|
||||
begin
|
||||
i := 32767;
|
||||
i := i + 15;
|
||||
@ -14,5 +25,96 @@ begin
|
||||
b := 255;
|
||||
b := b * 8;
|
||||
b := 255;
|
||||
b := b * 17
|
||||
b := b * 17;
|
||||
|
||||
l := high(longint);
|
||||
try
|
||||
l := l+1;
|
||||
doerror(1);
|
||||
except
|
||||
on eintoverflow do
|
||||
;
|
||||
else
|
||||
doerror(2);
|
||||
end;
|
||||
|
||||
l := low(longint);
|
||||
try
|
||||
l := l-1;
|
||||
doerror(3);
|
||||
except
|
||||
on eintoverflow do
|
||||
;
|
||||
else
|
||||
doerror(4);
|
||||
end;
|
||||
|
||||
l := low(longint);
|
||||
try
|
||||
l := l*2;
|
||||
doerror(5);
|
||||
except
|
||||
on eintoverflow do
|
||||
;
|
||||
else
|
||||
doerror(6);
|
||||
end;
|
||||
|
||||
l := high(longint) div 2;
|
||||
try
|
||||
l := l*3;
|
||||
doerror(7);
|
||||
except
|
||||
on eintoverflow do
|
||||
;
|
||||
else
|
||||
doerror(8);
|
||||
end;
|
||||
|
||||
|
||||
c := 0;
|
||||
try
|
||||
c := c-1;
|
||||
doerror(9);
|
||||
except
|
||||
on eintoverflow do
|
||||
;
|
||||
else
|
||||
doerror(10);
|
||||
end;
|
||||
|
||||
|
||||
c := high(cardinal);
|
||||
try
|
||||
c := c+1;
|
||||
doerror(11);
|
||||
except
|
||||
on eintoverflow do
|
||||
;
|
||||
else
|
||||
doerror(12);
|
||||
end;
|
||||
|
||||
c := high(cardinal) div 2;
|
||||
try
|
||||
c := c*3;
|
||||
doerror(13);
|
||||
except
|
||||
on eintoverflow do
|
||||
;
|
||||
else
|
||||
doerror(14);
|
||||
end;
|
||||
|
||||
c := high(cardinal);
|
||||
try
|
||||
c := c*high(cardinal);
|
||||
doerror(15);
|
||||
except
|
||||
on eintoverflow do
|
||||
;
|
||||
else
|
||||
doerror(16);
|
||||
end;
|
||||
|
||||
End.
|
||||
|
Loading…
Reference in New Issue
Block a user