Browse Source

+ bug0185

Jonas Maebe 27 years ago
parent
commit
06f8d85e52
2 changed files with 31 additions and 0 deletions
  1. 30 0
      bugs/bug0185.pp
  2. 1 0
      bugs/readme.txt

+ 30 - 0
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.

+ 1 - 0
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