[libcxx] r283726 - [libcxx] Add the missing limits.h header

Asiri Rathnayake via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 10 01:38:52 PDT 2016


Author: asiri
Date: Mon Oct 10 03:38:51 2016
New Revision: 283726

URL: http://llvm.org/viewvc/llvm-project?rev=283726&view=rev
Log:
[libcxx] Add the missing limits.h header

The implementation of [depr.c.headers] in D12747 introduced the necessary
C headers into libc++. This patch adds one more missing headers: limits.h

We spotted this due to a failing C++03 test [limits_h.pass.cpp] in our libc++
configuration; when the limits.h header is included from a C++ program, it now
bypassed the __config header and went directly into the underlying C library's
limits.h header, which is problematic for us because we use __config header to
configure the underlying C library's behaviour when used from a C++ context.

Reviewers: mclow.lists, rsmith

Differential revision: https://reviews.llvm.org/D25361

Added:
    libcxx/trunk/include/limits.h

Added: libcxx/trunk/include/limits.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/limits.h?rev=283726&view=auto
==============================================================================
--- libcxx/trunk/include/limits.h (added)
+++ libcxx/trunk/include/limits.h Mon Oct 10 03:38:51 2016
@@ -0,0 +1,49 @@
+// -*- 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
+
+#include_next <limits.h>
+
+#endif  // _LIBCPP_LIMITS_H




More information about the cfe-commits mailing list