diff --git a/src/OSspecific/POSIX/signals/sigFpe.C b/src/OSspecific/POSIX/signals/sigFpe.C index 0f74e43a690293e8261d41765cda5395adbcb188..19861c86df7446262b307e5247de6000f9e5a8eb 100644 --- a/src/OSspecific/POSIX/signals/sigFpe.C +++ b/src/OSspecific/POSIX/signals/sigFpe.C @@ -45,6 +45,7 @@ License #endif #include <stdint.h> +#include <limits> // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -53,26 +54,7 @@ struct sigaction Foam::sigFpe::oldAction_; void Foam::sigFpe::fillSignallingNan(UList<scalar>& lst) { -#ifdef LINUX - - // initialize to signalling NaN -# ifdef WM_SP - - const uint32_t sNAN = 0x7ff7fffflu; - uint32_t* dPtr = reinterpret_cast<uint32_t*>(lst.begin()); - -# else - - const uint64_t sNAN = 0x7ff7ffffffffffffllu; - uint64_t* dPtr = reinterpret_cast<uint64_t*>(lst.begin()); - -# endif - - forAll(lst, i) - { - *dPtr++ = sNAN; - } -#endif + lst = std::numeric_limits<scalar>::signaling_NaN(); }