diff options
author | Devtools Arcadia <arcadia-devtools@yandex-team.ru> | 2022-02-07 18:08:42 +0300 |
---|---|---|
committer | Devtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net> | 2022-02-07 18:08:42 +0300 |
commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /contrib/libs/cxxsupp/libcxx/include/ctime | |
download | ydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'contrib/libs/cxxsupp/libcxx/include/ctime')
-rw-r--r-- | contrib/libs/cxxsupp/libcxx/include/ctime | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/contrib/libs/cxxsupp/libcxx/include/ctime b/contrib/libs/cxxsupp/libcxx/include/ctime new file mode 100644 index 0000000000..816618f6a3 --- /dev/null +++ b/contrib/libs/cxxsupp/libcxx/include/ctime @@ -0,0 +1,93 @@ +// -*- C++ -*- +//===---------------------------- ctime -----------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP_CTIME +#define _LIBCPP_CTIME + +/* + ctime synopsis + +Macros: + + NULL + CLOCKS_PER_SEC + TIME_UTC // C++17 + +namespace std +{ + +Types: + + clock_t + size_t + time_t + tm + timespec // C++17 + +clock_t clock(); +double difftime(time_t time1, time_t time0); +time_t mktime(tm* timeptr); +time_t time(time_t* timer); +char* asctime(const tm* timeptr); +char* ctime(const time_t* timer); +tm* gmtime(const time_t* timer); +tm* localtime(const time_t* timer); +size_t strftime(char* restrict s, size_t maxsize, const char* restrict format, + const tm* restrict timeptr); +int timespec_get( struct timespec *ts, int base); // C++17 +} // std + +*/ + +#include <__config> +#include <time.h> + +#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +// FIXME: +// Apple SDKs don't define ::timespec_get unconditionally in C++ mode. This +// should be fixed in future SDKs, but for the time being we need to avoid +// trying to use that declaration when the SDK doesn't provide it. Note that +// we're detecting this here instead of in <__config> because we can't include +// system headers from <__config>, since it leads to circular module dependencies. +// This is also meant to be a very temporary workaround until the SDKs are fixed. +#if defined(__APPLE__) && !__has_attribute(using_if_exists) +# include <sys/cdefs.h> +# if defined(_LIBCPP_HAS_TIMESPEC_GET) && (__DARWIN_C_LEVEL < __DARWIN_C_FULL) +# define _LIBCPP_HAS_TIMESPEC_GET_NOT_ACTUALLY_PROVIDED +# endif +#endif + +_LIBCPP_BEGIN_NAMESPACE_STD + +using ::clock_t _LIBCPP_USING_IF_EXISTS; +using ::size_t _LIBCPP_USING_IF_EXISTS; +using ::time_t _LIBCPP_USING_IF_EXISTS; +using ::tm _LIBCPP_USING_IF_EXISTS; +#if _LIBCPP_STD_VER > 14 && defined(_LIBCPP_HAS_TIMESPEC_GET) +using ::timespec _LIBCPP_USING_IF_EXISTS; +#endif +using ::clock _LIBCPP_USING_IF_EXISTS; +using ::difftime _LIBCPP_USING_IF_EXISTS; +using ::mktime _LIBCPP_USING_IF_EXISTS; +using ::time _LIBCPP_USING_IF_EXISTS; +using ::asctime _LIBCPP_USING_IF_EXISTS; +using ::ctime _LIBCPP_USING_IF_EXISTS; +using ::gmtime _LIBCPP_USING_IF_EXISTS; +using ::localtime _LIBCPP_USING_IF_EXISTS; +using ::strftime _LIBCPP_USING_IF_EXISTS; +#if _LIBCPP_STD_VER > 14 && defined(_LIBCPP_HAS_TIMESPEC_GET) && !defined(_LIBCPP_HAS_TIMESPEC_GET_NOT_ACTUALLY_PROVIDED) +using ::timespec_get _LIBCPP_USING_IF_EXISTS; +#endif + +_LIBCPP_END_NAMESPACE_STD + +#endif // _LIBCPP_CTIME |