Skip to content

Commit d97221b

Browse files
committed
add __attribute__((cold)) on _mi_assert_fail
1 parent 89c54b6 commit d97221b

File tree

1 file changed

+12
-1
lines changed
  • Include/internal/mimalloc/mimalloc

1 file changed

+12
-1
lines changed

Include/internal/mimalloc/mimalloc/types.h

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,16 @@ terms of the MIT license. A copy of the license can be found in the file
5858
#else
5959
#define mi_decl_noreturn
6060
#endif
61+
62+
/*
63+
* 'cold' attribute seems to have been fully supported since GCC 4.x.
64+
* See https://github.com/gcc-mirror/gcc/commit/52bf96d2f299e9e6.
65+
*/
66+
#if (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__)
67+
#define mi_decl_cold __attribute__((cold))
68+
#else
69+
#define mi_decl_cold
70+
#endif
6171
#endif
6272

6373
// ------------------------------------------------------
@@ -592,7 +602,8 @@ struct mi_heap_s {
592602

593603
#if (MI_DEBUG)
594604
// use our own assertion to print without memory allocation
595-
mi_decl_noreturn void _mi_assert_fail(const char* assertion, const char* fname, unsigned int line, const char* func);
605+
mi_decl_noreturn mi_decl_cold
606+
void _mi_assert_fail(const char* assertion, const char* fname, unsigned int line, const char* func);
596607
#define mi_assert(expr) ((expr) ? (void)0 : _mi_assert_fail(#expr,__FILE__,__LINE__,__func__))
597608
#else
598609
#define mi_assert(x)

0 commit comments

Comments
 (0)