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.

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

/BOUNDS_CHECK
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).

/CHECKMATE
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.

/DEBUG
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.

/FULL_DEBUG
Outputs full debugging information including PARAMETERs

/FULL_UNDEF
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)

/SUPPRESS_ARG_CHECK
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.

 

 

Basket
Empty
 
Copyright © 1999-2024 Silverfrost Limited