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


Le 30/05/2021 à 15:47, Tobias Giesen via fpc-pascal a écrit :
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  -  [email protected]
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

_______________________________________________
fpc-pascal maillist  -  [email protected]
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to