Discussion:
[fpc-pascal] FPC 3.2.2 (In)complete Boolean Evaluation on 32bit MacOS
Tobias Giesen via fpc-pascal
2021-05-30 13:47:35 UTC
Permalink
Hello,
it seems that the newest 32-bit FPC sometimes creates complete Boolean Evaluation
rather than partial, which causes my application to crash. My context is like this:

type BOOL=LongBool;
PBOOL=^LongBool;

function DoSomething(const Cancel:PBOOL=nil);
begin
if Assigned(Cancel) and Cancel^ then
Exit;
end;

This crashes because Cancel and Cancel^ are always evaluated, even if Cancel is nil.

It works fine in 64-bit.

Is this a known problem?

Cheers,
Tobias


_______________________________________________
fpc-pascal maillist - fpc-***@lists.freepascal.org
https://lists.freepascal.org/cgi-b
Pierre Muller via fpc-pascal
2021-06-07 21:59:33 UTC
Permalink
Hi all,


I took the liberty to report a bug issue about this problem,
which I was able to reproduce on x86_64 3.2.2 release compiler.

See
https://bugs.freepascal.org/view.php?id=38973
for more details,

Thanks for reporting,

Pierre Muller
Post by Tobias Giesen via fpc-pascal
Hello,
it seems that the newest 32-bit FPC sometimes creates complete Boolean Evaluation
type BOOL=LongBool;
PBOOL=^LongBool;
function DoSomething(const Cancel:PBOOL=nil);
begin
if Assigned(Cancel) and Cancel^ then
Exit;
end;
This crashes because Cancel and Cancel^ are always evaluated, even if Cancel is nil.
It works fine in 64-bit.
Is this a known problem?
Cheers,
Tobias
_______________________________________________
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist - fpc-***@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Loading...