@@ -22,9 +22,9 @@ terms of the MIT license. A copy of the license can be found in the file
22
22
#if (defined(__GNUC__ ) || defined(__clang__ )) && !defined(__APPLE__ )
23
23
// use aliasing to alias the exported function to one of our `mi_` functions
24
24
#if (defined(__GNUC__ ) && __GNUC__ >= 9 )
25
- #define MI_FORWARD (fun ) __attribute__((alias(#fun), used, visibility("default"), copy(fun)))
25
+ #define MI_FORWARD (fun ) __attribute__((alias(#fun), used, visibility("default"), copy(fun)));
26
26
#else
27
- #define MI_FORWARD (fun ) __attribute__((alias(#fun), used, visibility("default")))
27
+ #define MI_FORWARD (fun ) __attribute__((alias(#fun), used, visibility("default")));
28
28
#endif
29
29
#define MI_FORWARD1 (fun ,x ) MI_FORWARD(fun)
30
30
#define MI_FORWARD2 (fun ,x ,y ) MI_FORWARD(fun)
@@ -75,10 +75,10 @@ terms of the MIT license. A copy of the license can be found in the file
75
75
// we just override new/delete which does work in a static library.
76
76
#else
77
77
// On all other systems forward to our API
78
- void * malloc (size_t size ) MI_FORWARD1 (mi_malloc , size );
79
- void * calloc (size_t size , size_t n ) MI_FORWARD2 (mi_calloc , size , n );
80
- void * realloc (void * p , size_t newsize ) MI_FORWARD2 (mi_realloc , p , newsize );
81
- void free (void * p ) MI_FORWARD0 (mi_free , p );
78
+ void * malloc (size_t size ) MI_FORWARD1 (mi_malloc , size )
79
+ void * calloc (size_t size , size_t n ) MI_FORWARD2 (mi_calloc , size , n )
80
+ void * realloc (void * p , size_t newsize ) MI_FORWARD2 (mi_realloc , p , newsize )
81
+ void free (void * p ) MI_FORWARD0 (mi_free , p )
82
82
#endif
83
83
84
84
#if (defined (__GNUC__ ) || defined(__clang__ )) && !defined(__APPLE__ )
@@ -96,18 +96,18 @@ terms of the MIT license. A copy of the license can be found in the file
96
96
// see <https://en.cppreference.com/w/cpp/memory/new/operator_new>
97
97
// ------------------------------------------------------
98
98
#include <new>
99
- void operator delete (void * p ) noexcept MI_FORWARD0 (mi_free ,p );
100
- void operator delete [](void * p ) noexcept MI_FORWARD0 (mi_free ,p );
99
+ void operator delete (void * p ) noexcept MI_FORWARD0 (mi_free ,p )
100
+ void operator delete [](void * p ) noexcept MI_FORWARD0 (mi_free ,p )
101
101
102
- void * operator new (std ::size_t n ) noexcept (false ) MI_FORWARD1 (mi_new ,n );
103
- void * operator new [](std ::size_t n ) noexcept (false ) MI_FORWARD1 (mi_new ,n );
102
+ void * operator new (std ::size_t n ) noexcept (false ) MI_FORWARD1 (mi_new ,n )
103
+ void * operator new [](std ::size_t n ) noexcept (false ) MI_FORWARD1 (mi_new ,n )
104
104
105
105
void * operator new (std ::size_t n , const std ::nothrow_t & tag ) noexcept { UNUSED (tag ); return mi_new_nothrow (n ); }
106
106
void * operator new [](std ::size_t n , const std ::nothrow_t & tag ) noexcept { UNUSED (tag ); return mi_new_nothrow (n ); }
107
107
108
108
#if (__cplusplus >= 201402L || _MSC_VER >= 1916 )
109
- void operator delete (void * p , std ::size_t n ) noexcept MI_FORWARD02 (mi_free_size ,p ,n );
110
- void operator delete [](void * p , std ::size_t n ) noexcept MI_FORWARD02 (mi_free_size ,p ,n );
109
+ void operator delete (void * p , std ::size_t n ) noexcept MI_FORWARD02 (mi_free_size ,p ,n )
110
+ void operator delete [](void * p , std ::size_t n ) noexcept MI_FORWARD02 (mi_free_size ,p ,n )
111
111
#endif
112
112
113
113
#if (__cplusplus > 201402L && defined(__cpp_aligned_new )) && (!defined(__GNUC__ ) || (__GNUC__ > 5 ))
@@ -128,30 +128,30 @@ terms of the MIT license. A copy of the license can be found in the file
128
128
// used by GCC and CLang).
129
129
// See <https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling>
130
130
// ------------------------------------------------------
131
- void _ZdlPv (void * p ) MI_FORWARD0 (mi_free ,p ); // delete
132
- void _ZdaPv (void * p ) MI_FORWARD0 (mi_free ,p ); // delete[]
133
- void _ZdlPvm (void * p , size_t n ) MI_FORWARD02 (mi_free_size ,p ,n );
134
- void _ZdaPvm (void * p , size_t n ) MI_FORWARD02 (mi_free_size ,p ,n );
131
+ void _ZdlPv (void * p ) MI_FORWARD0 (mi_free ,p ) // delete
132
+ void _ZdaPv (void * p ) MI_FORWARD0 (mi_free ,p ) // delete[]
133
+ void _ZdlPvm (void * p , size_t n ) MI_FORWARD02 (mi_free_size ,p ,n )
134
+ void _ZdaPvm (void * p , size_t n ) MI_FORWARD02 (mi_free_size ,p ,n )
135
135
void _ZdlPvSt11align_val_t (void * p , size_t al ) { mi_free_aligned (p ,al ); }
136
136
void _ZdaPvSt11align_val_t (void * p , size_t al ) { mi_free_aligned (p ,al ); }
137
137
void _ZdlPvmSt11align_val_t (void * p , size_t n , size_t al ) { mi_free_size_aligned (p ,n ,al ); }
138
138
void _ZdaPvmSt11align_val_t (void * p , size_t n , size_t al ) { mi_free_size_aligned (p ,n ,al ); }
139
139
140
140
typedef struct mi_nothrow_s { int _tag ; } mi_nothrow_t ;
141
141
#if (MI_INTPTR_SIZE == 8 )
142
- void * _Znwm (size_t n ) MI_FORWARD1 (mi_new ,n ); // new 64-bit
143
- void * _Znam (size_t n ) MI_FORWARD1 (mi_new ,n ); // new[] 64-bit
144
- void * _ZnwmSt11align_val_t (size_t n , size_t al ) MI_FORWARD2 (mi_new_aligned , n , al );
145
- void * _ZnamSt11align_val_t (size_t n , size_t al ) MI_FORWARD2 (mi_new_aligned , n , al );
142
+ void * _Znwm (size_t n ) MI_FORWARD1 (mi_new ,n ) // new 64-bit
143
+ void * _Znam (size_t n ) MI_FORWARD1 (mi_new ,n ) // new[] 64-bit
144
+ void * _ZnwmSt11align_val_t (size_t n , size_t al ) MI_FORWARD2 (mi_new_aligned , n , al )
145
+ void * _ZnamSt11align_val_t (size_t n , size_t al ) MI_FORWARD2 (mi_new_aligned , n , al )
146
146
void * _ZnwmRKSt9nothrow_t (size_t n , mi_nothrow_t tag ) { UNUSED (tag ); return mi_new_nothrow (n ); }
147
147
void * _ZnamRKSt9nothrow_t (size_t n , mi_nothrow_t tag ) { UNUSED (tag ); return mi_new_nothrow (n ); }
148
148
void * _ZnwmSt11align_val_tRKSt9nothrow_t (size_t n , size_t al , mi_nothrow_t tag ) { UNUSED (tag ); return mi_new_aligned_nothrow (n ,al ); }
149
149
void * _ZnamSt11align_val_tRKSt9nothrow_t (size_t n , size_t al , mi_nothrow_t tag ) { UNUSED (tag ); return mi_new_aligned_nothrow (n ,al ); }
150
150
#elif (MI_INTPTR_SIZE == 4 )
151
- void * _Znwj (size_t n ) MI_FORWARD1 (mi_new ,n ); // new 64-bit
152
- void * _Znaj (size_t n ) MI_FORWARD1 (mi_new ,n ); // new[] 64-bit
153
- void * _ZnwjSt11align_val_t (size_t n , size_t al ) MI_FORWARD2 (mi_new_aligned , n , al );
154
- void * _ZnajSt11align_val_t (size_t n , size_t al ) MI_FORWARD2 (mi_new_aligned , n , al );
151
+ void * _Znwj (size_t n ) MI_FORWARD1 (mi_new ,n ) // new 64-bit
152
+ void * _Znaj (size_t n ) MI_FORWARD1 (mi_new ,n ) // new[] 64-bit
153
+ void * _ZnwjSt11align_val_t (size_t n , size_t al ) MI_FORWARD2 (mi_new_aligned , n , al )
154
+ void * _ZnajSt11align_val_t (size_t n , size_t al ) MI_FORWARD2 (mi_new_aligned , n , al )
155
155
void * _ZnwjRKSt9nothrow_t (size_t n , mi_nothrow_t tag ) { UNUSED (tag ); return mi_new_nothrow (n ); }
156
156
void * _ZnajRKSt9nothrow_t (size_t n , mi_nothrow_t tag ) { UNUSED (tag ); return mi_new_nothrow (n ); }
157
157
void * _ZnwjSt11align_val_tRKSt9nothrow_t (size_t n , size_t al , mi_nothrow_t tag ) { UNUSED (tag ); return mi_new_aligned_nothrow (n ,al ); }
@@ -170,13 +170,13 @@ extern "C" {
170
170
// Posix & Unix functions definitions
171
171
// ------------------------------------------------------
172
172
173
- void cfree (void * p ) MI_FORWARD0 (mi_free , p );
174
- void * reallocf (void * p , size_t newsize ) MI_FORWARD2 (mi_reallocf ,p ,newsize );
175
- size_t malloc_size (const void * p ) MI_FORWARD1 (mi_usable_size ,p );
173
+ void cfree (void * p ) MI_FORWARD0 (mi_free , p )
174
+ void * reallocf (void * p , size_t newsize ) MI_FORWARD2 (mi_reallocf ,p ,newsize )
175
+ size_t malloc_size (const void * p ) MI_FORWARD1 (mi_usable_size ,p )
176
176
#if !defined(__ANDROID__ )
177
- size_t malloc_usable_size (void * p ) MI_FORWARD1 (mi_usable_size ,p );
177
+ size_t malloc_usable_size (void * p ) MI_FORWARD1 (mi_usable_size ,p )
178
178
#else
179
- size_t malloc_usable_size (const void * p ) MI_FORWARD1 (mi_usable_size ,p );
179
+ size_t malloc_usable_size (const void * p ) MI_FORWARD1 (mi_usable_size ,p )
180
180
#endif
181
181
182
182
// no forwarding here due to aliasing/name mangling issues
@@ -199,11 +199,11 @@ void* aligned_alloc(size_t alignment, size_t size) { return mi_aligned_alloc(a
199
199
200
200
#if defined(__GLIBC__ ) && defined(__linux__ )
201
201
// forward __libc interface (needed for glibc-based Linux distributions)
202
- void * __libc_malloc (size_t size ) MI_FORWARD1 (mi_malloc ,size );
203
- void * __libc_calloc (size_t count , size_t size ) MI_FORWARD2 (mi_calloc ,count ,size );
204
- void * __libc_realloc (void * p , size_t size ) MI_FORWARD2 (mi_realloc ,p ,size );
205
- void __libc_free (void * p ) MI_FORWARD0 (mi_free ,p );
206
- void __libc_cfree (void * p ) MI_FORWARD0 (mi_free ,p );
202
+ void * __libc_malloc (size_t size ) MI_FORWARD1 (mi_malloc ,size )
203
+ void * __libc_calloc (size_t count , size_t size ) MI_FORWARD2 (mi_calloc ,count ,size )
204
+ void * __libc_realloc (void * p , size_t size ) MI_FORWARD2 (mi_realloc ,p ,size )
205
+ void __libc_free (void * p ) MI_FORWARD0 (mi_free ,p )
206
+ void __libc_cfree (void * p ) MI_FORWARD0 (mi_free ,p )
207
207
208
208
void * __libc_valloc (size_t size ) { return mi_valloc (size ); }
209
209
void * __libc_pvalloc (size_t size ) { return mi_pvalloc (size ); }
0 commit comments