tw2442.pp 946 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. { Source provided for Free Pascal Bug Report 2442 }
  2. { Submitted by "Louis Jean-Richard" on 2003-03-28 }
  3. { e-mail: [email protected] }
  4. PROGRAM Procall;
  5. TYPE
  6. anObject =
  7. OBJECT
  8. n : byte;
  9. PROCEDURE A( w : word );
  10. PROCEDURE A( c : cardinal );
  11. END
  12. ;
  13. PROCEDURE anObject.A( w : word );
  14. PROCEDURE B;
  15. BEGIN
  16. WriteLn('B called (word)')
  17. END
  18. ;
  19. BEGIN
  20. n:=w DIV 2;
  21. B
  22. END
  23. ;
  24. PROCEDURE anObject.A( c : cardinal );
  25. PROCEDURE B;
  26. BEGIN
  27. WriteLn('B called (cardinal)');
  28. writeln('error!');
  29. halt(1);
  30. END
  31. ;
  32. BEGIN
  33. n:=c DIV 4;
  34. B
  35. END
  36. ;
  37. VAR
  38. x : anObject;
  39. w : word;
  40. BEGIN
  41. w:=1;
  42. x.A(w) { the wrong local procedure is called !!! }
  43. END
  44. .