git: 1f09e354297c - main - sys/limits.h: Add BOOL_MAX, BITINT_MAXWIDTH, and C23 feature test macro
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 13 Aug 2026 09:43:19 UTC
The branch main has been updated by kfv:
URL: https://cgit.FreeBSD.org/src/commit/?id=1f09e354297ce571353210c23e50ef6fc19ce382
commit 1f09e354297ce571353210c23e50ef6fc19ce382
Author: Faraz Vahedi <kfv@FreeBSD.org>
AuthorDate: 2026-08-04 12:43:57 +0000
Commit: Faraz Vahedi <kfv@FreeBSD.org>
CommitDate: 2026-08-13 09:41:25 +0000
sys/limits.h: Add BOOL_MAX, BITINT_MAXWIDTH, and C23 feature test macro
Add BOOL_MAX and BITINT_MAXWIDTH macros for C23 compliance, and
define the __STDC_VERSION_LIMITS_H__ feature test macro now that
the header fully conforms to C23.
Reviewed by: fuz
Approved by: fuz (mentor)
MFC after: 1 month
Pull Request: https://github.com/freebsd/freebsd-src/pull/2352
---
include/limits.h | 6 +++---
sys/sys/limits.h | 7 +++++++
sys/sys/syslimits.h | 3 ++-
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/include/limits.h b/include/limits.h
index 2b75b94cb513..7b316e6e905d 100644
--- a/include/limits.h
+++ b/include/limits.h
@@ -29,8 +29,8 @@
* SUCH DAMAGE.
*/
-#ifndef _LIMITS_H_
-#define _LIMITS_H_
+#ifndef __STDC_VERSION_LIMITS_H__
+#define __STDC_VERSION_LIMITS_H__ 202311L
#include <sys/cdefs.h>
@@ -148,4 +148,4 @@
#include <sys/syslimits.h>
#endif
-#endif /* !_LIMITS_H_ */
+#endif /* !__STDC_VERSION_LIMITS_H__ */
diff --git a/sys/sys/limits.h b/sys/sys/limits.h
index 8044d4458639..c25257f01c5e 100644
--- a/sys/sys/limits.h
+++ b/sys/sys/limits.h
@@ -69,6 +69,7 @@
#endif
#if __ISO_C_VISIBLE >= 2023
+#define BOOL_MAX 1 /* max value for a bool */
#define BOOL_WIDTH 1 /* number of bits in a bool */
#define CHAR_WIDTH __CHAR_BIT /* number of bits in a char */
@@ -86,6 +87,12 @@
#define LLONG_WIDTH __LLONG_BIT /* number of bits in a long long */
#define ULLONG_WIDTH __LLONG_BIT /* number of bits in an unsigned long long */
+
+#ifdef __BITINT_MAXWIDTH__
+#define BITINT_MAXWIDTH __BITINT_MAXWIDTH__
+#else
+#define BITINT_MAXWIDTH ULLONG_WIDTH
+#endif
#endif
#if __POSIX_VISIBLE || __XSI_VISIBLE
diff --git a/sys/sys/syslimits.h b/sys/sys/syslimits.h
index 64be1fc9b4e2..eb1520d98c89 100644
--- a/sys/sys/syslimits.h
+++ b/sys/sys/syslimits.h
@@ -32,7 +32,8 @@
#ifndef _SYS_SYSLIMITS_H_
#define _SYS_SYSLIMITS_H_
-#if !defined(_STANDALONE) && !defined(_KERNEL) && !defined(_LIMITS_H_) && !defined(_SYS_PARAM_H_)
+#if !defined(_STANDALONE) && !defined(_KERNEL) && \
+ !defined(__STDC_VERSION_LIMITS_H__) && !defined(_SYS_PARAM_H_)
#warning "No user-serviceable parts inside."
#endif