The branch main has been updated by fuz:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=fc88be257e30c3e3c01f25ec3a3a6e7933b40c54

commit fc88be257e30c3e3c01f25ec3a3a6e7933b40c54
Author:     Robert Clausecker <[email protected]>
AuthorDate: 2025-12-04 23:25:10 +0000
Commit:     Robert Clausecker <[email protected]>
CommitDate: 2025-12-04 23:25:10 +0000

    Revert "stddef.h: add unreachable() for C23 compliance"
    
    Seems like a number of ports are *really* unhappy with this new
    macro.  These ports will have to be fixed and the patch reworked
    to perhaps not affect C++ (see D54041).  A general discussion on
    how we expose new language features may also need to take place.
    
    Reported by:    many people
    Approved by:    markj (mentor)
    
    This reverts commit b381d0980221b476cadbef862a8e5973d675fb7a.
---
 include/stddef.h             |  4 --
 share/man/man3/Makefile      |  3 +-
 share/man/man3/assert.3      |  5 +--
 share/man/man3/unreachable.3 | 90 --------------------------------------------
 4 files changed, 3 insertions(+), 99 deletions(-)

diff --git a/include/stddef.h b/include/stddef.h
index 2ac8e9fe3f77..3ba9a9946b01 100644
--- a/include/stddef.h
+++ b/include/stddef.h
@@ -61,10 +61,6 @@ typedef      __max_align_t   max_align_t;
 #endif
 #endif
 
-#if __ISO_C_VISIBLE >= 2023
-#define unreachable(x) __unreachable(x)
-#endif
-
 #ifndef offsetof
 #define        offsetof(type, field)   __builtin_offsetof(type, field)
 #endif
diff --git a/share/man/man3/Makefile b/share/man/man3/Makefile
index 3fd819814f77..8e4aadc460a6 100644
--- a/share/man/man3/Makefile
+++ b/share/man/man3/Makefile
@@ -36,8 +36,7 @@ MAN=          alloca.3 \
                sysexits.3 \
                tgmath.3 \
                timeradd.3 \
-               tree.3 \
-               unreachable.3
+               tree.3
 
 MLINKS=                arb.3 ARB8_ENTRY.3 \
                arb.3 ARB8_HEAD.3 \
diff --git a/share/man/man3/assert.3 b/share/man/man3/assert.3
index cbaedb49010a..f219aa1d6743 100644
--- a/share/man/man3/assert.3
+++ b/share/man/man3/assert.3
@@ -25,7 +25,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd November 27, 2025
+.Dd April 20, 2021
 .Dt ASSERT 3
 .Os
 .Sh NAME
@@ -118,8 +118,7 @@ constraint and includes the provided string literal:
 If none is provided, it only points at the constraint.
 .Sh SEE ALSO
 .Xr abort2 2 ,
-.Xr abort 3 ,
-.Xr unreachable 3
+.Xr abort 3
 .Sh STANDARDS
 The
 .Fn assert
diff --git a/share/man/man3/unreachable.3 b/share/man/man3/unreachable.3
deleted file mode 100644
index 9dd7da806d42..000000000000
--- a/share/man/man3/unreachable.3
+++ /dev/null
@@ -1,90 +0,0 @@
-.\"
-.\" Copyright (c) 2025 Robert Clausecker <[email protected]>
-.\"
-.\" SPDX-License-Identifier: BSD-2-Clause
-.\"
-.Dd November 27, 2025
-.Dt UNREACHABLE 3
-.Os
-.Sh NAME
-.Nm unreachable
-.Nd the unreachable macro
-.Sh SYNOPSIS
-.In stddef.h
-.Fd #define unreachable()
-.Sh DESCRIPTION
-If the
-.Fn unreachable
-macro is reached during execution, behavior is undefined.
-This can be useful to hint to the compiler that some invariant is guaranteed to
-hold or that some case cannot occur.
-.Sh EXAMPLES
-Suppose a floating-point number
-.Va x
-is to be classified using the
-.Xr fpclassify 3
-macro and a different action is to be taken based on the result of the
-classification.
-As the set of possible return values is known, the
-.Fn unreachable
-macro can be used to hint to the compiler that it can omit checks for
-other possible return values:
-.Bd -literal -offset 3n
-#include <math.h>
-#include <stddef.h>
-#include <stdio.h>
-
-void print_classification(double x)
-{
-       printf("%f: ", x);
-
-       switch (fpclassify(x)) {
-       case FP_INFINITE:
-               puts("infinite");
-               break;
-
-       case FP_NAN:
-               puts("not a number");
-               break;
-
-       case FP_NORMAL:
-               puts("normal");
-               break;
-
-       case FP_SUBNORMAL:
-               puts("subnormal");
-               break;
-
-       case FP_ZERO:
-               puts("zero");
-               break;
-
-       default:
-               unreachable();
-       }
-}
-.Ed
-.Sh SEE ALSO
-.Xr assert 3
-.Sh STANDARDS
-The
-.Fn unreachable
-macro conforms to
-.St -isoC-2023 .
-.Sh HISTORY
-A
-.Dv /*NOTREACHED*/
-conventional comment was supported by the historical
-.Xr lint 1
-utility to suppress warnings about unreachable statements during static
-analysis.
-The
-.Fn unreachable
-macro was added in
-.Fx 15.1
-based on the earlier private
-.Fn __unreachable
-macro for compliance with
-.St -isoC-2023 .
-.Sh AUTHOR
-.Ah Robert Clausecker Aq Mt [email protected]

Reply via email to