1- /* HASH CRC-32:0x6cd1da08 */
1+ /* HASH CRC-32:0x66f946a4 */
22/* Copyright (c) 2019-2025 Griefer@Work *
33 * *
44 * This software is provided 'as-is', without any express or implied *
@@ -57,6 +57,9 @@ __NAMESPACE_STD_USING(imaxdiv_t)
5757#endif /* !__imaxdiv_t_defined */
5858__NAMESPACE_STD_USING (imaxabs )
5959__NAMESPACE_STD_USING (imaxdiv )
60+ #ifdef __USE_ISOC2Y
61+ __NAMESPACE_STD_USING (uimaxabs )
62+ #endif /* __USE_ISOC2Y */
6063__NAMESPACE_STD_USING (strtoimax )
6164__NAMESPACE_STD_USING (strtoumax )
6265__NAMESPACE_STD_USING (wcstoimax )
@@ -756,8 +759,16 @@ __CEIREDIRECT(__ATTR_CONST,__INTMAX_TYPE__,__NOTHROW,imaxabs,(__INTMAX_TYPE__ __
756759__CEIREDIRECT (__ATTR_CONST ,__INTMAX_TYPE__ ,__NOTHROW ,imaxabs ,(__INTMAX_TYPE__ __x ),labs ,{ return __x < 0 ? - __x : __x ; })
757760#elif defined(__CRT_HAVE_llabs ) && __SIZEOF_INTMAX_T__ == __SIZEOF_LONG_LONG__
758761__CEIREDIRECT (__ATTR_CONST ,__INTMAX_TYPE__ ,__NOTHROW ,imaxabs ,(__INTMAX_TYPE__ __x ),llabs ,{ return __x < 0 ? - __x : __x ; })
762+ #elif defined(__CRT_HAVE_qabs ) && __SIZEOF_INTMAX_T__ == __SIZEOF_LONG_LONG__
763+ __CEIREDIRECT (__ATTR_CONST ,__INTMAX_TYPE__ ,__NOTHROW ,imaxabs ,(__INTMAX_TYPE__ __x ),qabs ,{ return __x < 0 ? - __x : __x ; })
759764#elif defined(__CRT_HAVE__abs64 ) && __SIZEOF_INTMAX_T__ == 8
760765__CEIREDIRECT (__ATTR_CONST ,__INTMAX_TYPE__ ,__NOTHROW ,imaxabs ,(__INTMAX_TYPE__ __x ),_abs64 ,{ return __x < 0 ? - __x : __x ; })
766+ #elif defined(__CRT_HAVE_uabs ) && __SIZEOF_INTMAX_T__ == __SIZEOF_INT__
767+ __CEIREDIRECT (__ATTR_CONST ,__INTMAX_TYPE__ ,__NOTHROW ,imaxabs ,(__INTMAX_TYPE__ __x ),uabs ,{ return __x < 0 ? - __x : __x ; })
768+ #elif defined(__CRT_HAVE_ulabs ) && __SIZEOF_INTMAX_T__ == __SIZEOF_LONG__
769+ __CEIREDIRECT (__ATTR_CONST ,__INTMAX_TYPE__ ,__NOTHROW ,imaxabs ,(__INTMAX_TYPE__ __x ),ulabs ,{ return __x < 0 ? - __x : __x ; })
770+ #elif defined(__CRT_HAVE_ullabs ) && __SIZEOF_INTMAX_T__ == __SIZEOF_LONG_LONG__
771+ __CEIREDIRECT (__ATTR_CONST ,__INTMAX_TYPE__ ,__NOTHROW ,imaxabs ,(__INTMAX_TYPE__ __x ),ullabs ,{ return __x < 0 ? - __x : __x ; })
761772#else /* ... */
762773__LOCAL __ATTR_CONST __INTMAX_TYPE__ __NOTHROW (__LIBCCALL imaxabs )(__INTMAX_TYPE__ __x ) { return __x < 0 ? - __x : __x ; }
763774#endif /* !... */
@@ -775,6 +786,31 @@ __NAMESPACE_STD_END
775786__NAMESPACE_STD_BEGIN
776787__NAMESPACE_LOCAL_USING_OR_IMPL (imaxdiv , __FORCELOCAL __ATTR_ARTIFICIAL __ATTR_CONST struct __imaxdiv_struct __NOTHROW_NCX (__LIBCCALL imaxdiv )(__INTMAX_TYPE__ __numer , __INTMAX_TYPE__ __denom ) { return (__NAMESPACE_LOCAL_SYM __LIBC_LOCAL_NAME (imaxdiv ))(__numer , __denom ); })
777788#endif /* !... */
789+ #ifdef __USE_ISOC2Y
790+ #if __has_builtin (__builtin_imaxabs ) && defined(__LIBC_BIND_CRTBUILTINS ) && defined(__CRT_HAVE_imaxabs )
791+ __CEIREDIRECT (,__UINTMAX_TYPE__ ,__NOTHROW_NCX ,uimaxabs ,(__INTMAX_TYPE__ __x ),imaxabs ,{ return __builtin_imaxabs (__x ); })
792+ #elif defined(__CRT_HAVE_imaxabs )
793+ __CEIREDIRECT (,__UINTMAX_TYPE__ ,__NOTHROW_NCX ,uimaxabs ,(__INTMAX_TYPE__ __x ),imaxabs ,{ return __x < 0 ? - __x : __x ; })
794+ #elif defined(__CRT_HAVE_abs ) && __SIZEOF_INTMAX_T__ == __SIZEOF_INT__
795+ __CEIREDIRECT (,__UINTMAX_TYPE__ ,__NOTHROW_NCX ,uimaxabs ,(__INTMAX_TYPE__ __x ),abs ,{ return __x < 0 ? - __x : __x ; })
796+ #elif defined(__CRT_HAVE_labs ) && __SIZEOF_INTMAX_T__ == __SIZEOF_LONG__
797+ __CEIREDIRECT (,__UINTMAX_TYPE__ ,__NOTHROW_NCX ,uimaxabs ,(__INTMAX_TYPE__ __x ),labs ,{ return __x < 0 ? - __x : __x ; })
798+ #elif defined(__CRT_HAVE_llabs ) && __SIZEOF_INTMAX_T__ == __SIZEOF_LONG_LONG__
799+ __CEIREDIRECT (,__UINTMAX_TYPE__ ,__NOTHROW_NCX ,uimaxabs ,(__INTMAX_TYPE__ __x ),llabs ,{ return __x < 0 ? - __x : __x ; })
800+ #elif defined(__CRT_HAVE_qabs ) && __SIZEOF_INTMAX_T__ == __SIZEOF_LONG_LONG__
801+ __CEIREDIRECT (,__UINTMAX_TYPE__ ,__NOTHROW_NCX ,uimaxabs ,(__INTMAX_TYPE__ __x ),qabs ,{ return __x < 0 ? - __x : __x ; })
802+ #elif defined(__CRT_HAVE__abs64 ) && __SIZEOF_INTMAX_T__ == 8
803+ __CEIREDIRECT (,__UINTMAX_TYPE__ ,__NOTHROW_NCX ,uimaxabs ,(__INTMAX_TYPE__ __x ),_abs64 ,{ return __x < 0 ? - __x : __x ; })
804+ #elif defined(__CRT_HAVE_uabs ) && __SIZEOF_INTMAX_T__ == __SIZEOF_INT__
805+ __CEIREDIRECT (,__UINTMAX_TYPE__ ,__NOTHROW_NCX ,uimaxabs ,(__INTMAX_TYPE__ __x ),uabs ,{ return __x < 0 ? - __x : __x ; })
806+ #elif defined(__CRT_HAVE_ulabs ) && __SIZEOF_INTMAX_T__ == __SIZEOF_LONG__
807+ __CEIREDIRECT (,__UINTMAX_TYPE__ ,__NOTHROW_NCX ,uimaxabs ,(__INTMAX_TYPE__ __x ),ulabs ,{ return __x < 0 ? - __x : __x ; })
808+ #elif defined(__CRT_HAVE_ullabs ) && __SIZEOF_INTMAX_T__ == __SIZEOF_LONG_LONG__
809+ __CEIREDIRECT (,__UINTMAX_TYPE__ ,__NOTHROW_NCX ,uimaxabs ,(__INTMAX_TYPE__ __x ),ullabs ,{ return __x < 0 ? - __x : __x ; })
810+ #else /* ... */
811+ __LOCAL __UINTMAX_TYPE__ __NOTHROW_NCX (__LIBCCALL uimaxabs )(__INTMAX_TYPE__ __x ) { return __x < 0 ? - __x : __x ; }
812+ #endif /* !... */
813+ #endif /* __USE_ISOC2Y */
778814#ifdef __CRT_HAVE_strtoimax
779815__CDECLARE (__ATTR_LEAF __ATTR_IN (1 ) __ATTR_OUT_OPT (2 ),__INTMAX_TYPE__ ,__NOTHROW_NCX ,strtoimax ,(char const * __restrict __nptr , char * * __endptr , __STDC_INT_AS_UINT_T __base ),(__nptr ,__endptr ,__base ))
780816#elif defined(__CRT_HAVE_strtol ) && __SIZEOF_INTMAX_T__ == __SIZEOF_LONG__
@@ -899,6 +935,13 @@ __NAMESPACE_STD_END
899935#ifndef __CXX_SYSTEM_HEADER
900936__NAMESPACE_STD_USING (imaxabs )
901937__NAMESPACE_STD_USING (imaxdiv )
938+ #endif /* !__CXX_SYSTEM_HEADER */
939+ #ifdef __USE_ISOC2Y
940+ #ifndef __CXX_SYSTEM_HEADER
941+ __NAMESPACE_STD_USING (uimaxabs )
942+ #endif /* !__CXX_SYSTEM_HEADER */
943+ #endif /* __USE_ISOC2Y */
944+ #ifndef __CXX_SYSTEM_HEADER
902945__NAMESPACE_STD_USING (strtoimax )
903946__NAMESPACE_STD_USING (strtoumax )
904947__NAMESPACE_STD_USING (wcstoimax )
0 commit comments