-#ifdef __wasilibc_unmodified_upstream
-static __inline double __atof(const char *__str) {
- return strtod(__str, NULL);
-}
-#define atof(str) __atof(str)
-
-static __inline int __atoi(const char *__str) {
- return (int)strtol(__str, NULL, 10);
-}
-#define atoi(str) __atoi(str)
-
-static __inline long __atol(const char *__str) {
- return strtol(__str, NULL, 10);
-}
-#define atol(str) __atol(str)
-
-static __inline long long __atoll(const char *__str) {
- return strtoll(__str, NULL, 10);
-}
-#define atoll(str) __atoll(str)
-
-static __inline int __abs(int __i) {
- return __i < 0 ? -__i : __i;
-}
-#define abs(i) __abs(i)
-
-static __inline long __labs(long __i) {
- return __i < 0 ? -__i : __i;
-}
-#define labs(i) __labs(i)
-
-static __inline long long __llabs(long long __i) {
- return __i < 0 ? -__i : __i;
-}
-#define llabs(i) __llabs(i)
-
-static __inline div_t __div(int __numer, int __denom) {
- div_t __res = {__numer / __denom, __numer % __denom};
- return __res;
-}
-#define div(numer, denom) __div(numer, denom)
-
-static __inline ldiv_t __ldiv(long __numer, long __denom) {
- ldiv_t __res = {__numer / __denom, __numer % __denom};
- return __res;
-}
-#define ldiv(numer, denom) __ldiv(numer, denom)
-
-static __inline lldiv_t __lldiv(long long __numer, long long __denom) {
- lldiv_t __res = {__numer / __denom, __numer % __denom};
- return __res;
-}
-#define lldiv(numer, denom) __lldiv(numer, denom)
-
-static __inline void *__bsearch(const void *__key, const void *__base,
- size_t __nel, size_t __width,
- int (*__compar)(const void *, const void *)) {
- const char *__basep, *__obj;
- size_t __mid, __skip;
- int __cmp;
-
- __basep = (const char *)__base;
- while (__nel > 0) {
- // Pick pivot.
- __mid = __nel / 2;
- __obj = __basep + __mid * __width;
- __cmp = __compar(__key, (const void *)__obj);
- if (__cmp < 0) {
- // key < obj. Restrict search to top of the list.
- __nel = __mid;
- } else if (__cmp > 0) {
- // key > obj. Restrict search to bottom of the list.
- __skip = __mid + 1;
- __basep += __skip * __width;
- __nel -= __skip;
- } else {
- return (void *)__obj;
- }
- }
- return NULL;
-}
-#define bsearch(key, base, nel, width, compar) \
- __preserve_const(void, __bsearch, base, key, base, nel, width, compar)
-#endif