[fpc-pascal] Arguments gets corrupted with anonymous nested function

Benito van der Zander benito at benibela.de
Wed Sep 7 17:09:05 CEST 2022


Hi,

> https://gitlab.com/freepascal.org/fpc/source/-/issues/38703 

> I'm afraid that with -O4 it is by design.
> -O4 enables -OoUNCERTAIN, and the documentation about -OoUNCERTAIN 
> notes that:
>
> “If uncertain optimizations are enabled, the CSE algorithm assumes that
> — If something is written to a local/global register or a 
> procedure/function parameter, this value doesn’t overwrite the value 
> to which a pointer points.
> — If something is written to memory pointed to by a pointer variable, 
> this value doesn’t overwrite the value of a local/global variable or a 
> procedure/function parameter.”
>

is it doing that? did it ever do that? It might break a lot of my code

But I cannot find any place in FPC where it is doing any OoUNCERTAIN 
optimizations

Best,
Benito
On 07.09.22 13:51, Peter B via fpc-pascal wrote:
> I'm wondering if this is related to
> https://gitlab.com/freepascal.org/fpc/source/-/issues/38703
>
> That caused a parameter corruption in a standard function.
> https://lists.freepascal.org/pipermail/fpc-pascal/2022-March/060361.html
>
> Should be easy to check. Just try compiling with -O1
>
>
> Cheers,
> Peter
> _______________________________________________
> fpc-pascal maillist  - fpc-pascal at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20220907/d1dfc1d3/attachment.htm>


More information about the fpc-pascal mailing list