# 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

Parent topic: Floating-Point Options

## See Also

ftz, Qftz compiler option
fp-trap-all, Qfp-trap-all compiler option