bug0185.pp 874 B

1234567891011121314151617181920212223242526272829303132333435
  1. Program bug0185;
  2. {shows some bugs with rangechecks}
  3. var s: String;
  4. i: integer;
  5. code: word;
  6. e: 0..10;
  7. enum : (a,b,c,d);
  8. Begin
  9. {$R-}
  10. s := '$fffff';
  11. val(s, i, code); {no range check error may occur here}
  12. Writeln('Integer($fffff) = ',i);
  13. Write('Enter the value 20 (should not give a rangecheck error): ');
  14. Readln(e);
  15. {$R+}
  16. s := '$ffff';
  17. val(s, i, code); {no range check error may occur here}
  18. Writeln('integer($ffff) = ', i,'(should not give range check error)');
  19. Writeln('Enter value from 0-10 to test Val rangecheck, another for subrange rangecheck: ');
  20. Readln(e);
  21. Writeln('If you entered a value different from 0-10, subrange range checks don''t work!');
  22. s := '65535';
  23. val(s, i, code); {must give a range check error}
  24. Writeln('Val range check failed!');
  25. { val must also handle enums }
  26. s:='2';
  27. val(s, enum, code);
  28. End.