<div dir="ltr"><div>frexp is not specified to have any failure conditions, but it necessarily will fail to return the specified values for some double-double inputs.</div><div><br></div><div>The following program will fail on the second assertion due to underflow in the less significant component of the double-double value.<br></div>#include <assert.h><br>#include <math.h><br>#include <float.h><br>int main() {<br>  int exp;<br>  const long double oneplus = 1.L + DBL_TRUE_MIN;<br>  const long double frac = frexp(oneplus, &exp);<br>  assert(exp == 1);<br>  assert(frac * 2 == oneplus);<br><div>}</div><div><br></div></div>