Intel® C++ Compiler 16.0 User and Reference Guide

check-pointers-mpx, Qcheck-pointers-mpx

Determines whether the compiler checks bounds for memory access through pointers on processors that support Intel® Memory Protection Extensions (Intel® MPX).

Architecture Restrictions

Not available on Intel® 64 architecture targeting the Intel® Xeon Phi™ coprocessor x100 product family (formerly code name Knights Corner), on IA-32 architecture targeting Intel® Graphics Technology, or on Intel® 64 architecture targeting Intel® Graphics Technology

Syntax

Linux:

-check-pointers-mpx=keyword

OS X:

None

Windows:

/Qcheck-pointers-mpx:keyword

Arguments

keyword

Specifies what type of bounds checking occurs. Possible values are:

none

Disables bounds checking. This is the default.

rw

Checks bounds for reads and writes through pointers.

write

Checks bounds for only writes through pointers.

Default

-check-pointers-mpx=none or /Qcheck-pointers-mpx:none

No bounds checking occurs for memory access through pointers on processors that support Intel® MPX.

Description

This option determines whether the compiler checks bounds for memory access through pointers on processors that support Intel® MPX. It enables checking of all indirect accesses through pointers, and all array accesses.

The compiler may optimize these checks away when it can determine that an access is safe.

If you specify option [Q]check-pointers along with option [Q]check-pointers-mpx, option [Q]check-pointers-mpx takes precedence.

If you specify [Q]check-pointers-mpx, you cannot specify option [Q]check-pointers-dangling.

Note

This feature requires supporting hardware, OS, and library support. Intel® MPX bounds exceptions are hardware exceptions that are handled by the OS and run-time library, similar to the way that a null pointer exception is handled. Pointer Checker detailed reports and report control functions are not enabled with Intel® MPX, because these require overriding the OS exception handling.

For more details, see the document titled: Intel® Memory Protection Extensions Enabling Guide, which is located at http://intel.ly/1QlUdjN

This pointer checker feature requires installation of another product. For more information, see Feature Requirements.

IDE Equivalent

Visual Studio: Code Generation > Check Pointers

Eclipse: Code Generation > Check Pointers

Xcode: None

Alternate Options

None

See Also