[fpc-devel] Closures -- debug warning @ ttgobj.FreeTemp
Jonas Maebe
jonas.maebe at elis.ugent.be
Tue Mar 10 13:47:34 CET 2015
On 09 Mar 2015, at 14:36, Blaise at blaise.ru wrote:
> On 15.01.2012 18:26, Blaise Thorn wrote:
>
>> I have implemented the support for the Delphi-compatible non-
>> generic closures.
>
> I am ready to commit the improved (and fully compilable) version.
> Per Jonas Maebe's suggestion, I am going to create a new branch
> (also, last time I tried to commit into the existing "closures"
> branch, I was consistently getting 500 Internal Server Error).
Do you already have an svn account?
> begin
> Foo().Bar()
> // ^-- Warning: tgobj: (FreeTemp) temp at pos -44 is already free !
> end.
> ----------8<----------
> Does this indicate a problem in the compiler, or is this warning
> bogus?
It indicates a problem in the compiler. As the message indicates, it
means that you (or someone else before you) are trying to free a temp
(allocated via tg.gettemp or the like) twice. The generated code will
still be ok in this case, but it could lead to trouble in case a temp
would be allocated again in between which would happen to get the same
address as the old one, since then the second free of the old temp
will free the new temp.
Jonas
More information about the fpc-devel
mailing list