[fpc-devel] Wrong docs: not initialized global variables

Michael Van Canneyt michael at freepascal.org
Thu Apr 5 17:18:27 CEST 2018



On Thu, 5 Apr 2018, Martok wrote:

> Am 05.04.2018 um 08:35 schrieb Michael Van Canneyt:
>> If the compiler devs wanted, they could initialize every string with the
>> '<undefined string>' constant,
> That is in fact the -gt option.

I doubt -gt does something for managed types?

>
>> Pascal states: do not assume that variables are initialized.
> Corollary: there is no guarantee that "class operator Initialize()" is ever
> called, and Maciej can roll back management operators. I very much doubt this is
> what you want to imply.

And why not ?

This is the whole problem and source of the "kludge' I referred to:

When introducing managed types, Delphi should have performed the full monty, 
and simply zero-out everything at any point.

This would eliminate in large part the need for management operators, since
you can then detect whether a type is initialized or not if so desired, and
act on it.

TMyManagedType = Record
   IsInitialized : Boolean;
   // The rest of what you actually need
end;


Michael.



More information about the fpc-devel mailing list