[fpc-pascal] FPC 3.2.2 (In)complete Boolean Evaluation on 32bit MacOS

Tobias Giesen tobiasgiesen at gmail.com
Sun May 30 15:47:35 CEST 2021


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




More information about the fpc-pascal mailing list