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

fp-trap, Qfp-trap

Sets the floating-point trapping mode for the main routine.

Syntax

Linux:

-fp-trap=mode[,mode,...]

macOS:

-fp-trap=mode[,mode,...]

Windows:

/Qfp-trap:mode[,mode,...]

Arguments

mode

Is the floating-point trapping mode. If you specify more than one mode value, the list is processed sequentially from left to right. Possible values are:

[no]divzero

Enables or disables the IEEE trap for division by zero.

[no]inexact

Enables or disables the IEEE trap for inexact result.

[no]invalid

Enables or disables the IEEE trap for invalid operation.

[no]overflow

Enables or disables the IEEE trap for overflow.

[no]underflow

Enables or disables the IEEE trap for underflow.

[no]denormal

Enables or disables the trap for denormal.

all

Enables all of the above traps.

none

Disables all of the above traps.

common

Sets the most commonly used IEEE traps: division by zero, invalid operation, and overflow.

Default

-fp-trap=none
or/Qfp-trap:none

No traps are enabled when a program starts.

Description

This option sets the floating-point trapping mode for the main routine. It does not set a handler for floating-point exceptions.

The [no] form of a mode value is only used to modify the meaning of mode values all and common, and can only be used with one of those values. The [no] form of the option by itself does not explicitly cause a particular trap to be disabled.

Use mode value inexact with caution. This results in the trap being enabled whenever a floating-point value cannot be represented exactly, which can cause unexpected results.

If mode value underflow is specified, the compiler ignores the FTZ (flush-to-zero) bit state of Intel® Streaming SIMD Extensions (Intel® SSE) floating-point units.

When a DAZ (denormals are zero) bit is set in an Intel® SSE floating-point unit control word, a denormal operand exception is never generated.

To set the floating-point trapping mode for all routines, specify the[Q]fp-trap-all option.

NOTE:

The negative form of the [Q]ftz option can be used to set or reset the FTZ and the DAZ hardware flags.

IDE Equivalent

Visual Studio: Code Generation > Unmask Floating Point Exceptions

Configuration Properties->C/C++ > Unmask Floating Point Exceptions

Eclipse: Floating Point > Initial Exception Mask

Xcode: Floating Point > Set Initial Exception Mask

Alternate Options

None

See Also