[fpc-devel] Bug 18702
Joost van der Sluis
joost at cnoc.nl
Sat Dec 24 16:03:03 CET 2011
Hi all,
Seems like it that bug 18702 has nothing to do with my changes to the
stack-balancing code, and that nested function proc's never functioned
well on Windows.
The problem is that pop_parasize() is used to pop the stack-frame
pointer form the stack. But on 32-bit Windows, pop_parasize() has some
code to ensure that the funcret pointer is removed from the stack by the
caller. This is not applicable to the situation where only the
stack-frame pointer has to be popped from the stack.
A possible solution is attached, but I didn't commit it yet because I'm
nut sure if it is 'allowed' to use a 'target_info.system =
system_i386_win32' condition in ncgcal.pas. Other solutions could be to
add a parameter to pop_parasize or to add something like
pop_funcret_parasize().
Thoughts?
Joost.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bug18702.diff
Type: text/x-patch
Size: 2237 bytes
Desc: not available
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20111224/0f569cce/attachment.bin>
More information about the fpc-devel
mailing list