fpc/tests/tbs0185.pp
1999-02-02 14:32:10 +00:00

44 lines
1017 B
ObjectPascal

Program bug0185;
{shows some bugs with rangechecks}
{ readln from input changed to from a file to render it non-interactive }
var s: String;
i: integer;
code: word;
e: 0..10;
f : text;
Begin
{$R-}
s := '$fffff';
val(s, i, code); {no range check error may occur here}
Writeln('Integer($fffff) = ',i);
assign(f,'tbs0185.tmp');
rewrite(f);
Writeln(f,'20');
Writeln(f,'34');
close(f);
reset(f);
Write('Enter the value 20 (should not give a rangecheck error): ');
Readln(f,e);
{$R+}
s := '$ffff';
val(s, i, code); {no range check error may occur here}
Writeln('integer($ffff) = ', i,'(should not give range check error)');
Writeln('Enter value from 0-10 to test Val rangecheck, another for subrange rangecheck: ');
Readln(f,e);
Writeln('If you entered a value different from 0-10, subrange range checks don''t work!');
s := '65535';
val(s, i, code); {must give a range check error}
Writeln('Val range check failed!');
close(f);
erase(f);
Halt(1);
End.