diff mbox series

assert: Mark `__assert_fail` as `cold`

Message ID 20240726120502.3230804-1-goldstein.w.n@gmail.com
State New
Headers show
Series assert: Mark `__assert_fail` as `cold` | expand

Commit Message

Noah Goldstein July 26, 2024, 12:05 p.m. UTC
This helps compilers split the codegen for setting up the arguments
(`__expression`, `__filename`, etc...) from the potentially hot cold
where the `assert` is to a presumably cold region on the assertion
failure path.
---
 assert/assert.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/assert/assert.h b/assert/assert.h
index 266a41df06..14d3be9cac 100644
--- a/assert/assert.h
+++ b/assert/assert.h
@@ -66,18 +66,18 @@  __BEGIN_DECLS
 /* This prints an "Assertion failed" message and aborts.  */
 extern void __assert_fail (const char *__assertion, const char *__file,
 			   unsigned int __line, const char *__function)
-     __THROW __attribute__ ((__noreturn__));
+     __THROW __attribute__ ((__noreturn__)) __COLD;
 
 /* Likewise, but prints the error text for ERRNUM.  */
 extern void __assert_perror_fail (int __errnum, const char *__file,
 				  unsigned int __line, const char *__function)
-     __THROW __attribute__ ((__noreturn__));
+     __THROW __attribute__ ((__noreturn__)) __COLD;
 
 
 /* The following is not at all used here but needed for standard
    compliance.  */
 extern void __assert (const char *__assertion, const char *__file, int __line)
-     __THROW __attribute__ ((__noreturn__));
+     __THROW __attribute__ ((__noreturn__)) __COLD;
 
 
 __END_DECLS