tpara1.pp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. { %VERSION=1.1 }
  2. {$mode objfpc}
  3. uses
  4. erroru;
  5. type
  6. tr1 = record
  7. l1,l2 : cardinal;
  8. end;
  9. procedure p1(out b : byte);
  10. begin
  11. if b<>0 then
  12. do_error(1001);
  13. b:=$aa;
  14. end;
  15. procedure p2(out w : word);
  16. begin
  17. if w<>0 then
  18. do_error(1002);
  19. w:=$aaaa;
  20. end;
  21. procedure p3(out d : dword);
  22. begin
  23. if d<>0 then
  24. do_error(1003);
  25. d:=$aaaaaaaa;
  26. end;
  27. procedure p4(out r : tr1);
  28. begin
  29. if r.l1<>0 then
  30. do_error(1004);
  31. if r.l2<>0 then
  32. do_error(1005);
  33. r.l1:=$aaaaaaaa;
  34. r.l2:=$aaaaaaaa;
  35. end;
  36. procedure p5(out a : ansistring);
  37. begin
  38. if a<>'' then
  39. do_error(1000);
  40. a:='Now it''s another ansistring';
  41. end;
  42. var
  43. b : byte;
  44. w : word;
  45. d : dword;
  46. r1 : tr1;
  47. a : ansistring;
  48. begin
  49. b:=$ff;
  50. w:=$ffff;
  51. d:=$ffffffff;
  52. a:='An ansistring';
  53. r1.l1:=$ffffffff;
  54. r1.l2:=$ffffffff;
  55. p1(b);
  56. if b<>$aa then
  57. do_error(1100);
  58. p2(w);
  59. if w<>$aaaa then
  60. do_error(1101);
  61. p3(d);
  62. if d<>$aaaaaaaa then
  63. do_error(1102);
  64. p4(r1);
  65. if r1.l1<>$aaaaaaaa then
  66. do_error(1103);
  67. if r1.l2<>$aaaaaaaa then
  68. do_error(1104);
  69. p5(a);
  70. if a<>'Now it''s another ansistring' then
  71. do_error(1105);
  72. end.