[fpc-devel] Wrong docs: not initialized global variables
Ondrej Pokorny
lazarus at kluug.net
Sat Jul 7 07:35:11 CEST 2018
On 04.07.2018 12:08, Yuriy Sydorov wrote:
> Remove the warning or change it to a note in such case.
Earlier in this thread I tried to convince the FPC team to downgrade the
warning to a note. Without success. I was told that there is is no "good
reason to change the priority of the message".
Actually there is the same compiler message as a note as well already
now - the compiler decides if a warning or hint is shown on irrational
reasons. E.g.:
program Project1;
procedure TestSetLength;
var
S: string;
begin
SetLength(S, 0);
end;
procedure TestFillChar;
var
S: string;
begin
FillChar(S, 5, 0);
end;
begin
TestSetLength;
TestFillChar;
end.
Guess what line (SetLength or FillChar) is bad and guess what line has a
higher message level.
FPC has three (!) non-fatal message levels before error (hint, note,
warning) and yet they decided to use the highest rank in this case.
Probably because to use SetLength/... on an uninitialized managed local
variable it is the most unsafe yet compilable code ever typed into the
editor.
If I was FillChar I would sue the FPC team for discrimination in front
of the EU court that I want a warning as well, like SetLength. As
FillChar I would feel less important :P
Ondrej
More information about the fpc-devel
mailing list