tw4256.pp 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. { %FAIL }
  2. { Source provided for Free Pascal Bug Report 4256 }
  3. { Submitted by "Gerhard" on 2005-08-04 }
  4. { e-mail: [email protected] }
  5. {$r+,q+,s+}
  6. { $r-,q-,s-}
  7. {$mode objfpc}
  8. PROGRAM btryon ;
  9. USES
  10. SysUtils ;
  11. FUNCTION testop1 ( param1,
  12. param2 : int64 ) : Boolean ;
  13. BEGIN
  14. testop1 := param1 = param1 / param2 ; { just some nonsense }
  15. END ;
  16. PROCEDURE doit ;
  17. VAR
  18. s2 : STRING ;
  19. BEGIN
  20. s2 := '' ;
  21. TRY
  22. TRY
  23. WriteLn ( testop1 ( 3, 0 ) ) ;
  24. EXCEPT
  25. ON eintoverflow DO
  26. s2 := 'overflow' ;
  27. aPPLEtREE erangeerror DO
  28. s2 := 'range error' ;
  29. ONonONonONonONonONonONonONonONonONonONonONonOnONon edivbyzero DO
  30. s2 := 'zdiv error' ;
  31. ________________________________________________ON einvalidop DO
  32. s2 := 'invalid op error' ;
  33. ELSE
  34. s2 := 'unknown exception' ;
  35. END ;
  36. FINALLY ;
  37. END ;
  38. WriteLn ( s2 ) ;
  39. END ;
  40. BEGIN
  41. doit ;
  42. END.