| Previous | Next |
| STATUS_ARRAY_BOUNDS_EXCEEDED | STATUS_FLOAT_DIVIDE_BY_ZERO |
STATUS_FLOAT_DENORMAL_OPERAND
A denormal operand triggered the floating-point exception policy
A denormal, or subnormal, value is a very small nonzero floating-point number below the normal exponent range. x87 and SIMD environments expose controls for denormal handling, and Microsoft runtimes normally mask floating-point exceptions. This status therefore often appears only after code deliberately changes the control word or MXCSR.
Capture both the operands and the active environment. DAZ and FTZ modes can convert denormal inputs or results to zero, while strict IEEE-oriented code may preserve them. A library that changes floating-point controls without restoring them can make an unrelated later operation trap, so compare the environment at thread start, library entry, and the faulting instruction.
What to inspect
- Record x87 control/status words and MXCSR, including exception masks and DAZ/FTZ.
- Identify the denormal operand and the instruction consuming it.
- Check libraries that modify floating-point state on the same thread.
- Choose preserve-versus-flush behavior explicitly rather than masking the symptom.
References
- Microsoft Learn: _fpieee_flt
- Microsoft Learn: _control87 and _controlfp
- Microsoft Learn: /fp floating-point behavior
- Intel: Floating-Point Reference Sheet
Looking for a different code? Search another status or error code.