Module Name:    src
Committed By:   riastradh
Date:           Sat Mar 29 01:43:38 UTC 2025

Modified Files:
        src/include: assert.h

Log Message:
assert.h: Sprinkle __predict_true.

Assertions are always supposed to be true, so this should be a good
prediction.

This matches what we have done for KASSERT in the kernel since the
year 2000.

PR lib/59231: assert.h: missing branch prediction


To generate a diff of this commit:
cvs rdiff -u -r1.26 -r1.27 src/include/assert.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/include/assert.h
diff -u src/include/assert.h:1.26 src/include/assert.h:1.27
--- src/include/assert.h:1.26	Tue Sep 12 22:08:24 2023
+++ src/include/assert.h	Sat Mar 29 01:43:38 2025
@@ -1,4 +1,4 @@
-/*	$NetBSD: assert.h,v 1.26 2023/09/12 22:08:24 rillig Exp $	*/
+/*	$NetBSD: assert.h,v 1.27 2025/03/29 01:43:38 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1992, 1993
@@ -52,12 +52,12 @@
 #else /* !NDEBUG */
 # if __STDC__
 #  define assert(e)							\
-	((e) ? __static_cast(void,0) : __assert13(__FILE__, __LINE__,	\
-	                                          __assert_function__, #e))
+	(__predict_true(e) ? __static_cast(void,0)			\
+	    : __assert13(__FILE__, __LINE__, __assert_function__, #e))
 # else	/* PCC */
 #  define assert(e)							\
-	((e) ? __static_cast(void,0) : __assert13(__FILE__, __LINE__,	\
-	                                          __assert_function__, "e"))
+	(__predict_true(e) ? __static_cast(void,0)			\
+	    : __assert13(__FILE__, __LINE__, __assert_function__, "e"))
 # endif /* !__STDC__ */
 #endif /* NDEBUG */
 
@@ -67,12 +67,12 @@
 #else /* _DIAGNOSTIC */
 # if __STDC__
 #  define _DIAGASSERT(e)						\
-	((e) ? __static_cast(void,0) : __diagassert13(__FILE__, __LINE__, \
-	                                              __assert_function__, #e))
+	(__predict_true(e) ? __static_cast(void,0)			\
+	    : __diagassert13(__FILE__, __LINE__, __assert_function__, #e))
 # else	/* !__STDC__ */
 #  define _DIAGASSERT(e)	 					\
-	((e) ? __static_cast(void,0) : __diagassert13(__FILE__, __LINE__, \
-	                                              __assert_function__, "e"))
+	(__predict_true(e) ? __static_cast(void,0)			\
+	    : __diagassert13(__FILE__, __LINE__, __assert_function__, "e"))
 # endif
 #endif /* _DIAGNOSTIC */
 

Reply via email to