codekingpro/portable-devtools
114k
1// -*- C++ -*-2//===--------------------------- limits.h ---------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef _LIBCUDACXX_LIMITS_H11#define _LIBCUDACXX_LIMITS_H12 13/*14 limits.h synopsis15 16Macros:17 18 CHAR_BIT19 SCHAR_MIN20 SCHAR_MAX21 UCHAR_MAX22 CHAR_MIN23 CHAR_MAX24 MB_LEN_MAX25 SHRT_MIN26 SHRT_MAX27 USHRT_MAX28 INT_MIN29 INT_MAX30 UINT_MAX31 LONG_MIN32 LONG_MAX33 ULONG_MAX34 LLONG_MIN // C9935 LLONG_MAX // C9936 ULLONG_MAX // C9937 38*/39 40#include <__config>41 42#include <__pragma_push>43 44#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)45# pragma GCC system_header46#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)47# pragma clang system_header48#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)49# pragma system_header50#endif // no system header51 52#ifndef __GNUC__53#include_next <limits.h>54#else55// GCC header limits.h recursively includes itself through another header called56// syslimits.h for some reason. This setup breaks down if we directly57// #include_next GCC's limits.h (reasons not entirely clear to me). Therefore,58// we manually re-create the necessary include sequence below:59 60// Get the system limits.h defines (force recurse into the next level)61#define _GCC_LIMITS_H_62#define _GCC_NEXT_LIMITS_H63#include_next <limits.h>64 65// Get the ISO C defines66#undef _GCC_LIMITS_H_67#include_next <limits.h>68#endif // __GNUC__69 70#include <__pragma_pop>71 72#endif // _LIBCUDACXX_LIMITS_H73 