[fpc-devel] One more issue with string function results (hopefully, the last)

Sergei Gorelkin sergei_gorelkin at mail.ru
Wed Jan 23 00:08:54 CET 2008


Peter Vreman wrote:

> The example that is provided doesn't fail. Because when calling foo the value of -4(%ebp) is
> loaded in %eax and that value is used in the function foo. The setlength() will create a new
> string and store that at -4(%ebp) of the calling function. But doesn't change the original
> parameter value in %eax (and also stored also at (%esp) in foo).
> 
Hmm... It doesn't fail for me either now, although I've seen it failing 
with my own eyes before submitting it the first time :/

Probably I've oversimplified the example.

The failing function in Lazarus code is CreateRelativePath in 
components/codetools/fileprocs.pas, being called (second occurrence) 
from TBaseCompilerOptions.MakeOptionsString (ide/compileroptions.pp).
That code is much more complex than the example, and what's happening 
there is not in the testsuite, because my patch wasn't causing testsuite 
failures.

I'll be digging further in.

Sergei



More information about the fpc-devel mailing list