[fpc-devel] One more issue with string function results (hopefully, the last)
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
I'll be digging further in.
More information about the fpc-devel