[fpc-pascal] When the variable freed in Optimize compile

michael.vancanneyt at wisa.be michael.vancanneyt at wisa.be
Wed Jun 8 13:38:19 CEST 2011



On Wed, 8 Jun 2011, Zaher Dirkey wrote:

> On Wed, Jun 8, 2011 at 11:22 AM, <michael.vancanneyt at wisa.be> wrote:
>
>>
>>
>> On Wed, 8 Jun 2011, Zaher Dirkey wrote:
>>
>>  Hi, I know when compile the project with optimize in Delphi the variable
>>> freed/allocated after the last line used.
>>> How can i make same in FPC, O3 not worked for me.
>>> I used FPC 2.4.4
>>>
>>> var
>>>  c: Currency;
>>> begin
>>>  c := 10;
>>>  writeln(c);
>>> <<now c freed
>>>  some code here
>>> end;
>>>
>>
>> C (as a currency) is never 'freed'. It is declared throughout the whole
>> procedure.
>>
>
> What if C is string or Interface of TInterfacedObject?

It is the same logic. It's freed only at the end.

For compiler-generated temporary variables, you should not make any assumptions.

Michael.



More information about the fpc-pascal mailing list