From: Noah Goldstein Date: Fri, 26 Jul 2024 08:35:13 +0000 (+0800) Subject: assert: Mark `__assert_fail` as `cold` X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=f6f904745942540c7ea99c403b75b695ee560035;p=glibc.git assert: Mark `__assert_fail` as `cold` 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. Reviewed-by: Florian Weimer Reviewed-by: Sam James --- 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