Technical data
#pragma Directives [3]
For more information on accessing BESUs, see Barrier and Eureka Synchronization
(Cray T3E Systems), publication HMM-141–0. (A nondisclosure agreement must
be signed with Cray Inc. before you can obtain this document.) For a convenient
source of BESU state codes, see header file mpp/mpphw_t3e.h.
This directive is not required when accessing BESUs through the following
barrier and eureka event routines: barrier(3), pvm_barrier(3),
shmem_barrier_all(3), set_event(3), wait_event(3), test_event(3),
clear_event(3). However, this directive is required when programming BESUs
directly through the techniques described in the Barrier and Eureka Synchronization
(Cray T3E Systems), publication HMM-141–0.
3.5.2 [no]bounds Directive (Cray Standard C Compiler)
The bounds directive specifies that pointer and array references are to be
checked. The nobounds directive specifies that this checking is to be disabled.
When bounds checking is in effect, pointer references are checked to ensure that
they are not 0 or are not greater than the machine memory limit. Array references
are checked to ensure that the array subscript is not less than 0 or greater than or
equal to the declared size of the array. Both directives take effect starting with the
next program statement in the compilation unit, and stay in effect until the next
bounds or nobounds directive, or until the end of the compilation unit.
These directives have the following format:
#pragma _CRI bounds
#pragma _CRI nobounds
The following example illustrates the use of the bounds directive:
int a[30];
#pragma _CRI bounds
void f(void)
{
int x;
x = a[30];
.
.
.
}
S–2179–36 49










