[libc-commits] [libc] [libc] Add limits.h header. (PR #78887)

Nick Desaulniers via libc-commits libc-commits at lists.llvm.org
Mon Jan 22 14:48:30 PST 2024


================
@@ -0,0 +1,247 @@
+//===-- Definition of macros from limits.h --------------------------------===//
+//
+// 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 __LLVM_LIBC_MACROS_LIMITS_MACROS_H
+#define __LLVM_LIBC_MACROS_LIMITS_MACROS_H
+
+#if __has_include_next(<limits.h>)
+
+// Suppress `#include_next is a language extension` warnings.
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wgnu-include-next"
+#elif defined(__GNUC__) // gcc
+#if !defined _GCC_LIMITS_H_
+#define _GCC_LIMITS_H_
+#endif
+#pragma GCC system_header
+#endif // __clang__, __GNUC__
+
+// Include compiler's header
+#include_next <limits.h>
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif // __clang__
+
+#endif // __has_include_next(<limits.h>)
+
+// Supplement missing macros.
+
----------------
nickdesaulniers wrote:

For which compiler/version/env are these macros missing? (Especially since I'd expect these to be provided by the compiler).

Would be good to comment in the source.  I'd like to triple check that these are indeed missing in those environments.

https://github.com/llvm/llvm-project/pull/78887


More information about the libc-commits mailing list