Visible to Intel only — GUID: GUID-4080D4B9-D56C-4760-9DA9-AD0E4044C52B
Visible to Intel only — GUID: GUID-4080D4B9-D56C-4760-9DA9-AD0E4044C52B
ftrapuv, Qtrapuv
Initializes stack local variables to an unusual value to aid error detection.
Linux: |
-ftrapuv |
macOS: |
-ftrapuv |
Windows: |
/Qtrapuv |
None
OFF |
The compiler does not initialize local variables. |
This option initializes stack local variables to an unusual value to aid error detection. Normally, these local variables should be initialized in the application. It also unmasks the floating-point invalid exception.
The option sets any uninitialized local variables that are allocated on the stack to a value that is typically interpreted as a very large integer or an invalid address. References to these variables are then likely to cause run-time errors that can help you detect coding errors.
This option sets option -g (Linux* and macOS) and /Zi or /Z7 (Windows*), which changes the default optimization level from O2 to -O0 (Linux and macOS) or /Od (Windows). You can override this effect by explicitly specifying an O option setting.
If option O2 and option -ftrapuv (Linux and macOS) or /Qtrapuv (Windows) are used together, you should specify option -fp-speculation safe (Linux and macOS) or /Qfp-speculation:safe (Windows) to prevent exceptions resulting from speculated floating-point operations from being trapped.
For more details on using options -ftrapuv and /Qtrapuv with compiler option O, see the article titled Don't optimize when using -ftrapuv for uninitialized variable detection.
Another way to detect uninitialized local scalar variables is by specifying keyword uninit for option check.
Visual Studio: None
Eclipse: Run-Time > Initialize Stack Variables to an Unusual Value
Xcode: Code Generation > Initialize Stack Variables to an Unusual Value
None