#include #include int main() { volatile union { unsigned i; float f; } u; volatile union { unsigned long l; double d; } v; feclearexcept(FE_ALL_EXCEPT); u.f = __builtin_nansf(""); v.d = u.f; printf("%08x\n", u.i); printf("%016lx - %d\n", v.l, fetestexcept(FE_INVALID)); feclearexcept(FE_ALL_EXCEPT); v.d = __builtin_nans(""); u.f = v.d; printf("%016lx\n", v.l); printf("%08x - %d\n", u.i, fetestexcept(FE_INVALID)); return 0; }