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@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal