Share via


runtime_checks

#pragma runtime_checks( "[runtime_checks]", {restore | off} )

Disables or restores the /RTC settings. You cannot enable a run-time check that was not enabled with a compiler option. For example, if you do not specify /RTCs, specifying #pragma runtime_checks( "s", restore) will not enable stack (frame).verification.

The runtime_check pragma must appear outside a function and takes effect at the first function defined after the pragma is seen. The restore and off arguments turn options specified in the runtime_checks on or off.

The runtime_checks can be zero or more of the parameters shown in Table 2.3.

Table 2.3   Parameters of the runtime_checks Pragma

Parameter(s) Type of run-time check
s Enables stack (frame) verification.
c Reports when a value is assigned to a smaller data type that results in a data loss.
m Reports when a dereferenced pointer is based on an address that you did not allocate.

These are the same letters used with the /RTC compiler option. For example:

#pragma runtime_checks( "sc", restore )

Note that the l or v form of the /RTC compiler option is not available for the pragma. If you want to detect memory leaks or mismatches in memory allocation and deallocation, you must use the /RTC compiler option.

Using the runtime_checks pragma with the empty string ("") is a special form of the directive:

  • When you use the off parameter, it turns the run-time error checks, listed in the table above, off.
  • When you use the restore parameter, it resets the run-time error checks to those that you specified with the /RTC compiler option.
#pragma runtime_checks( "", off )
.
.
.
#pragma runtime_checks( "", restore )

Pragma Directives