7.1 -fast Compile-Time Option

Unless there is a possibility that your program contains zero-sized arrays or array sections, the -fast option (or the -assume nozsize option) should always be specified at compile time. If neither of these options is selected, the compiler is required to insert a series of checks to guard against division by zero in its internal computations. Depending upon the particular application, these checks can have a noticeable (or even major) effect on performance.

The -fast or -assume nozsize compile- time options may not be used in a program where lines containing any zero-sized arrays or array sections are executed. If any line containing zero-sized arrays is executed in a program compiled with the either of these options, incorrect program results occur.

If it is suspected that an array or array section named on a certain program line may be zero-sized, a run-time check can be performed that prevents execution of that line whenever the array or array section is zero-sized. The difference between the UBOUND and LBOUND of the array or array section is less than or equal to zero if the array or array section is zero-sized. If the execution of all occurrences of zero-sized arrays or array sections are avoided using a run-time check such as this, the program may be compiled with the -fast or -assume nozsize compiler options.

For documentation of the -fast and -assume nozsize options, see Sections 8.1.1.3 and 8.1.1.2.