diff --git a/bugs/bug0185.pp b/bugs/bug0185.pp new file mode 100644 index 0000000000..3f0563dde9 --- /dev/null +++ b/bugs/bug0185.pp @@ -0,0 +1,30 @@ +Program bug0185; + +{shows some bugs with rangechecks} + +var s: String; + i: integer; + code: word; + e: 0..10; + +Begin +{$R-} + s := '$fffff'; + val(s, i, code); {no range check error may occur here} + Writeln('Integer($fffff) = ',i); + + Write('Enter the value 20 (should not give a rangecheck error): '); + Readln(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(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!'); +End. diff --git a/bugs/readme.txt b/bugs/readme.txt index ae3d34a481..45db3f74d7 100644 --- a/bugs/readme.txt +++ b/bugs/readme.txt @@ -246,3 +246,4 @@ bug0163.pp missing <= and >= operators for sets. bug0169.pp missing new(type) support for not object/class bug0171.pp missing typecasting in constant expressions bug0183.pp internal error 10 +bug0185.pp missing range checking for Val and subrange types