/* This file is NOT part of the LLVM Project Copyright 2023 Green Hills Software, Inc. This program is the property of Green Hills Software, Inc, its contents are proprietary information and no part of it is to be disclosed to anyone except employees of Green Hills Software, Inc., or as agreed in writing signed by the President of Green Hills Software, Inc. */ // This file defines some utility functions which are defined in the // libcxx implementation, but are not defined in ours #ifndef _LIBCPP_GHS_CHARCONV_UTILS #define _LIBCPP_GHS_CHARCONV_UTILS #include <__config> #include <__type_traits/enable_if.h> #include <__type_traits/is_unsigned.h> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header #endif #if defined(__ghs__) #pragma ghs start_cxx_lib_header #pragma ghs startdata #if defined(__ghs_max_pack_value) #pragma pack (push, __ghs_max_pack_value) #endif #endif _LIBCPP_BEGIN_NAMESPACE_STD template _LIBCPP_CONSTEXPR_SINCE_CXX14 typename enable_if::value, _Tp>::type __complement(_Tp __t) { return _Tp(~__t + 1); } _LIBCPP_END_NAMESPACE_STD #if defined(__ghs__) #if defined(__ghs_max_pack_value) #pragma pack(pop) #endif #pragma ghs enddata #pragma ghs end_cxx_lib_header #endif #endif /* _LIBCPP_GHS_CHARCONV_UTILS */