Run-time checking options

A significant feature of FTN95 is its ability to implement a range of powerful run-time checks that help the programmer to develop error free code. The options in this group direct the compiler to plant code that carries out these checks. /CHECKMATE (which is the same as /FULL_UNDEF) provides comprehensive checking and is recommended for normal development.

Win32 only. Implies both /CHECK and /LGO and causes a break to the symbolic debugging facility at the first executable statement.

Check array subscripts only (/CHECK includes /BOUNDS_CHECK).

/CHECK more...
Causes code to be planted in order to enable the run-time checking of array bounds, overflow etc., and also to enable the use of the source-level debugging facilities (/CHECK implies /DEBUG).

A synonym for /FULL_UNDEF. /FULL_UNDEF implies /UNDEF which in turn implies /CHECK.

/CHECK_ALIAS more...
Provides runtime checking for aliased arguments when used with /CHECK.

causes FTN95 to generate symbolic information and to activate the symbolic debugger when fatal errors occur. /DEBUG is included in both /CHECK and /UNDEF which are normally preferred. /DEBUG can be used on its own in order to allow the debugger to be used on "dirty" code, which intentionally violates some of the rules of Fortran.

Outputs full debugging information including PARAMETERs

Like /UNDEF but also INTENT(OUT) arguments are initialised as undefined on entry to a procedure (see /INHIBIT_CHECK to switch this off) and by default character variables are initialised as undefined. The reading of an undefined value precipitates an error condition.

/INHIBIT_CHECK <integer>
Prevent the specified check being added with /CHECK and /FULL_UNDEF as follows:
1 - suppress marking DO-loop indices as unwritable in a function call
2 - suppress marking INTENT(IN) arguments as unwritable in a function call
3 - suppress POINTER checking partially
4 - suppress POINTER checking completely
5 - suppress the argument type/size checking on function entry
6 - suppress the extra information added to a CHECK mode function call
7 - suppress CHARACTER length checks on procedure entry
8 - suppress UNDEF check with WRITE/PRINT statements
9 - suppress FULL_UNDEF check with CHARACTER WRITE/PRINT statements
10 - suppress checking of overwriting of DO-loop index using "(Writability of ...)"
11 - suppress checking of overwriting of DO-loop index after SUBROUTINE call using "(Value of ...)"
12 - suppress checking of overwriting of DO-loop index after FUNCTION call using "(Value of ...)"
13 - suppress checking of overwriting of EQUIVALENCEd/COMMON DO-loop index after assignment using "(Value of ...)"
14 - suppress FULL_UNDEF check with INTENT(OUT)
15 - same as item 5 but only for module procedures
16 - spare
17 - suppress a recursion check (64 bit only)
18 - suppress argument alias checking (cancels /CHECK_ALIAS)
19 - suppress array conformance checking
20 - suppress array bounds checking (simple arrays not array sections)

Suppresses /CHECK mode checking for argument consistency across routines.

/UNDEF more...
Implies /CHECK and also causes code to be planted in order to do run-time checking for any undefined variables or array elements.



Copyright © 1999-2023 Silverfrost Limited