Next: , Previous: Comp, Up: Reference



CompilerAssert

Synopsis

     procedure CompilerAssert (Condition: Boolean);

or

     function CompilerAssert (Condition: Boolean): Boolean;

or

     function CompilerAssert (Condition: Boolean;
                ResultValue: Any_Type): type of ResultValue;

Description

CompilerAssert checks the given Condition at compile-time. If it is a compile-time constant of Boolean type with the value True, it returns ResultValue, or if called with only one argument, it returns True or nothing if used as a procedure.

If Condition cannot be evaluated at compile-time or does not have the value True, it causes a compile-time error.

So it can be used to make sure that certain assumptions hold before relying on them.

CompilerAssert does not depend on the --[no-]assertions options. It does not generate any run-time code.

Conforming to

CompilerAssert is a GNU Pascal extension.

Example

     program CompilerAssertDemo;
     
     var
       a: LongInt;
     
     const
       { Make sure that the highest value a can hold is larger than
         MaxInt, and set b to that value. }
       b = CompilerAssert (High (a) > MaxInt, High (a));
     
       { Do a similar check for the minimum value, setting c to True
         (which can be ignored). }
       c = CompilerAssert (Low (a) < Low (Integer));
     
     begin
       { Procedure-like use of CompilerAssert in the statement part. }
       CompilerAssert (MaxInt >= 100000);
     
       WriteLn (b, ' ', c)
     end.

See also

Assert.