The System Unit provides the Assert procedures. Code generation for Assert can be activated through a compiler switch or command-line option:
<http://www.freepascal.org/docs-html/rtl/system/assert.html>
However, if you do leave them in, what is the overhead? In particular,
(1) does the generated code always involve a procedure call, or is the condition check inlined, and
(2) is the (optional) message parameter (when present) always evaluated, or only when the condition fails?
From the generated assembler listing of a small example, I get the
impression that the check is inlined and the message parameter is evaluated only on failure.
Can someone confirm that this is indeed always the way it is handled?
Tom
