diff options
author | Robert Nagy <robert@cvs.openbsd.org> | 2018-09-11 18:19:35 +0000 |
---|---|---|
committer | Robert Nagy <robert@cvs.openbsd.org> | 2018-09-11 18:19:35 +0000 |
commit | 2d1b7ae1f0939af87b093cce4806d92157f461f2 (patch) | |
tree | da2c7ea783a2f60d9b7a44d077ed13f8ced5e4be /lib/libcxx/include/limits.h | |
parent | f13f11cf6000cdf29ab3eb4573a96355070140ae (diff) |
import of libc++ 6.0.0
Diffstat (limited to 'lib/libcxx/include/limits.h')
-rw-r--r-- | lib/libcxx/include/limits.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/lib/libcxx/include/limits.h b/lib/libcxx/include/limits.h new file mode 100644 index 00000000000..1867b104857 --- /dev/null +++ b/lib/libcxx/include/limits.h @@ -0,0 +1,65 @@ +// -*- C++ -*- +//===--------------------------- limits.h ---------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP_LIMITS_H +#define _LIBCPP_LIMITS_H + +/* + limits.h synopsis + +Macros: + + CHAR_BIT + SCHAR_MIN + SCHAR_MAX + UCHAR_MAX + CHAR_MIN + CHAR_MAX + MB_LEN_MAX + SHRT_MIN + SHRT_MAX + USHRT_MAX + INT_MIN + INT_MAX + UINT_MAX + LONG_MIN + LONG_MAX + ULONG_MAX + LLONG_MIN // C99 + LLONG_MAX // C99 + ULLONG_MAX // C99 + +*/ + +#include <__config> + +#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +#ifndef __GNUC__ +#include_next <limits.h> +#else +// GCC header limits.h recursively includes itself through another header called +// syslimits.h for some reason. This setup breaks down if we directly +// #include_next GCC's limits.h (reasons not entirely clear to me). Therefore, +// we manually re-create the necessary include sequence below: + +// Get the system limits.h defines (force recurse into the next level) +#define _GCC_LIMITS_H_ +#define _GCC_NEXT_LIMITS_H +#include_next <limits.h> + +// Get the ISO C defines +#undef _GCC_LIMITS_H_ +#include_next <limits.h> +#endif // __GNUC__ + +#endif // _LIBCPP_LIMITS_H |