Delphi 7 Professional and probably other versions:
With a project open, choose
Project Options Compiler Messages
Check boxes X Show Hints X Show Warnings
Then a list of about 50 warnings, with check boxes, that the user can turn on/off. (There could be more.)
Surely much better than an endless philosophical disputation on what warnings should/should not be given:
Let the user choose -- caveat emptor.
Prof. Harley Flanders
----- Original Message ----- From: Prof A Olowofoyeku (The African Chief) To: gpc@gnu.de Sent: Friday, September 24, 2004 9:53 AM Subject: Re: Unused parameter warnings
On 24 Sep 2004 at 6:27, CBFalconer wrote:
[....]
This brings up the more general subject of the attitude to warnings. Pascal is not C. In C many, if not most, warnings indicate a serious situation where the probability of bad code is high, if not certain. Pascal has so many more internal checks that warnings tend to be just that, and the probability that the code does what is intended is much higher.
Thus the Pascal programmer should be prepared to evaluate and accept warnings on compilation. This attitude is probably not fatal, as it would be in C. In particular an unused parameter falls into this classification.
May I suggest another approach? Both Delphi and FreePascal have "warnings" and "hints". Warnings are for serious things that can hide bugs, while hints are for less serious things. Can we assign some of these things to "hints", and then have a switch to turn hinting on and off?
Example;
This program;
program warn;
function bar : integer; begin writeln ('bar'); end;
procedure foo (x, y : integer); begin y := bar; writeln (y); y := 0; end;
var x : integer; y : byte;
begin x := 1234; writeln (y); end.
Generates this, when compiled with Delphi: E:\temp\warn.pas(6) Warning: Return value of function 'bar' might be undefined E:\temp\warn.pas(12) Hint: Value assigned to 'y' never used E:\temp\warn.pas(20) Hint: Value assigned to 'x' never used E:\temp\warn.pas(21) Warning: Variable 'y' might not have been initialized
And generates this, when compiled with FPC: warn.pas(6,1) Warning: Function result does not seem to be set warn.pas(8,16) Hint: Parameter X not used warn.pas(21,15) Warning: Variable Y does not seem to be initialized warn.pas(8,11) Hint: Local proc FOO is not used warn.pas(16,1) Note: Local variable X is assigned but never used
Best regards, The Chief -------- Prof. Abimbola A. Olowofoyeku (The African Chief) web: http://www.greatchief.plus.com/