1// -*- C++ -*-
2//===----------------------------------------------------------------------===//
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-exception
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef _LIBCPP_CLIMITS
11#define _LIBCPP_CLIMITS
12
13/*
14    climits synopsis
15
16Macros:
17
18    CHAR_BIT
19    SCHAR_MIN
20    SCHAR_MAX
21    UCHAR_MAX
22    CHAR_MIN
23    CHAR_MAX
24    MB_LEN_MAX
25    SHRT_MIN
26    SHRT_MAX
27    USHRT_MAX
28    INT_MIN
29    INT_MAX
30    UINT_MAX
31    LONG_MIN
32    LONG_MAX
33    ULONG_MAX
34    LLONG_MIN   // C99
35    LLONG_MAX   // C99
36    ULLONG_MAX  // C99
37
38*/
39
40#include <__assert> // all public C++ headers provide the assertion handler
41#include <__config>
42
43#include <limits.h>
44
45#ifndef _LIBCPP_LIMITS_H
46#   error <climits> tried including <limits.h> but didn't find libc++'s <limits.h> header. \
47          This usually means that your header search paths are not configured properly. \
48          The header search paths should contain the C++ Standard Library headers before \
49          any C Standard Library, and you are probably using compiler flags that make that \
50          not be the case.
51#endif
52
53#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
54#  pragma GCC system_header
55#endif
56
57#endif // _LIBCPP_CLIMITS
58