On Aug 26, 2025 at 3:49:43 AM, Nikolay Nikolov via fpc-devel <
fpc-devel@lists.freepascal.org> wrote:

> But they're not 100% compatible, are they? IfThen evaluates both the true
> and the false parameter, while the 'if' statement doesn't. For example:
>
> s := IfThen(b <> 0, a div b, 999)
>
> Will raise a division by zero exception, if b is 0, while
>
> s := if b <> 0 then a div b else 999
>
> won't.
>
> Nikolay
>

I think if the call was inlined it wouldn’t but otherwise it would. FPC
can’t reliably inline either so you wouldn’t want to risk that. If that’s a
concern then IfThen could be an intrinsic. It’s basically just a macro to a
if statement with an assignment. Extremely simple thing to implement.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to