Intel® C++ Compiler Classic Developer Guide and Reference

ID 767249
Date 3/31/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

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

Syntax

Linux:

-check-pointers-mpx=keyword

macOS:

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.

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