__uint64_t _DEFUN (_strtoufix64_r, (rptr, nptr, endptr), struct _reent *rptr _AND _CONST char *nptr _AND char **endptr) { union long_double_union ldbl; int exp, sign, negexp, ld_type; __uint64_t tmp, tmp2, result = 0; init(ldbl); _simdstrtold ((char *)nptr, endptr, &ldbl); /* treat NAN as domain error, +/- infinity as saturation */ ld_type = _simdldcheck (&ldbl.ld); if (ld_type != 0) { if (ld_type == 1) { rptr->_errno = EDOM; return 0; } rptr->_errno = ERANGE; if (word0(ldbl) & Sign_bit) return 0; return ULONG_LONG_MAX; } /* strip off sign and exponent */ sign = word0(ldbl) & Sign_bit;
__uint64_t _DEFUN (_strtoufix64_r, (rptr, nptr, endptr), struct _reent *rptr _AND _CONST char *nptr _AND char **endptr) { union long_double_union ldbl; int exp, sign, negexp, ld_type; __uint64_t tmp, tmp2, result = 0; init(ldbl); _simdstrtold ((char *)nptr, endptr, &ldbl); /* treat NAN as domain error, +/- infinity as saturation */ ld_type = _simdldcheck (&ldbl); if (ld_type != 0) { if (ld_type == 1) { rptr->_errno = EDOM; return 0; } rptr->_errno = ERANGE; if (word0(ldbl) & Sign_bit) return 0; return ULONG_LONG_MAX; } /* strip off sign and exponent */ sign = word0(ldbl) & Sign_bit;