[fpc-devel] Wrong docs: not initialized global variables
Ondrej Pokorny
lazarus at kluug.net
Thu Apr 5 00:20:01 CEST 2018
On 04.04.2018 21:51, Jonas Maebe wrote:
> On 04/04/18 20:26, Ondrej Pokorny wrote:
>> The compiler initializes the variable implicitely for myself - this
>> is documented and I know it. There cannot be "wrong code behaviour"
>> (as you stated) and thus I cannot have an error. This is simple logic.
>
> "Wrong behaviour" is not the same as "undefined behaviour" or "crash".
> It merely means "something different than the programmer intended". It
> is of course possible that you wanted the behaviour that you get when
> the variable contains the empty string, nil or 0, but because this
> initialisation is implicit rather than explicit, the compiler does not
> rely on this. After all, it is equally possible that you forgot to
> assign the correct (non-nil/0/empty string) value to the variable
> before using it the first time (in which case it would be an error in
> the program).
How can I forget to assign the correct (non-nil/0/empty string) value to
a variable? Oh god, this is such a crazy argument - completely out of
the reality. At latest the first execution of the program tells me about
this error. Warnings should warn me about possible errors that I cannot
easily find and that are potentially dangerous.
No, this discussion is useless.
>> I must not. Turning off warnings is forbidden. Turning off hints and
>> notes is OK. That is the rules.
>
> The inflexibility of that rule in the Lazarus project is not a good
> reason to change the priority of the message.
...and the difference between a "truly uninitialized variable" and an
"implicitely initialized variable" is not a reason either...
Funnily enough there are both message levels (warning and hint) for all
variants of "not explicitely initialized variable". So somebody decided
when a hint and when a warning is emitted and you seem to be convinced
this decision is engraved in stone.
Even more funny - in
https://bugs.freepascal.org/view.php?id=24601#c75617 you used the same
tactics as now - you explain in a general way what the current behavior
is and ignore arguments for a possible change to make the behavior
clearer. Later, Florian changed it himself.
Ondrej
More information about the fpc-devel
mailing list