Fix inlining warning.
Add the JEMALLOC_ALWAYS_INLINE_C macro and use it for always-inlined functions declared in .c files. This fixes a function attribute inconsistency for debug builds that resulted in (harmless) compiler warnings about functions not being inlinable. Reported by Ricardo Nabinger Sanchez.
This commit is contained in:
parent
3ab682d341
commit
543abf7e6c
@ -232,9 +232,18 @@ static const bool config_ivsalloc =
|
|||||||
# define __DECONST(type, var) ((type)(uintptr_t)(const void *)(var))
|
# define __DECONST(type, var) ((type)(uintptr_t)(const void *)(var))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* JEMALLOC_ALWAYS_INLINE is used within header files for functions that are
|
||||||
|
* static inline functions if inlining is enabled, and single-definition
|
||||||
|
* library-private functions if inlining is disabled.
|
||||||
|
*
|
||||||
|
* JEMALLOC_ALWAYS_INLINE_C is for use in .c files, in which case the denoted
|
||||||
|
* functions are always static, regardless of whether inlining is enabled.
|
||||||
|
*/
|
||||||
#ifdef JEMALLOC_DEBUG
|
#ifdef JEMALLOC_DEBUG
|
||||||
/* Disable inlining to make debugging easier. */
|
/* Disable inlining to make debugging easier. */
|
||||||
# define JEMALLOC_ALWAYS_INLINE
|
# define JEMALLOC_ALWAYS_INLINE
|
||||||
|
# define JEMALLOC_ALWAYS_INLINE_C static
|
||||||
# define JEMALLOC_INLINE
|
# define JEMALLOC_INLINE
|
||||||
# define inline
|
# define inline
|
||||||
#else
|
#else
|
||||||
@ -242,8 +251,11 @@ static const bool config_ivsalloc =
|
|||||||
# ifdef JEMALLOC_HAVE_ATTR
|
# ifdef JEMALLOC_HAVE_ATTR
|
||||||
# define JEMALLOC_ALWAYS_INLINE \
|
# define JEMALLOC_ALWAYS_INLINE \
|
||||||
static inline JEMALLOC_ATTR(unused) JEMALLOC_ATTR(always_inline)
|
static inline JEMALLOC_ATTR(unused) JEMALLOC_ATTR(always_inline)
|
||||||
|
# define JEMALLOC_ALWAYS_INLINE_C \
|
||||||
|
static inline JEMALLOC_ATTR(always_inline)
|
||||||
# else
|
# else
|
||||||
# define JEMALLOC_ALWAYS_INLINE static inline
|
# define JEMALLOC_ALWAYS_INLINE static inline
|
||||||
|
# define JEMALLOC_ALWAYS_INLINE_C static inline
|
||||||
# endif
|
# endif
|
||||||
# define JEMALLOC_INLINE static inline
|
# define JEMALLOC_INLINE static inline
|
||||||
# ifdef _MSC_VER
|
# ifdef _MSC_VER
|
||||||
|
@ -282,7 +282,7 @@ arenas_cleanup(void *arg)
|
|||||||
malloc_mutex_unlock(&arenas_lock);
|
malloc_mutex_unlock(&arenas_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static JEMALLOC_ATTR(always_inline) void
|
JEMALLOC_ALWAYS_INLINE_C void
|
||||||
malloc_thread_init(void)
|
malloc_thread_init(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -299,7 +299,7 @@ malloc_thread_init(void)
|
|||||||
quarantine_alloc_hook();
|
quarantine_alloc_hook();
|
||||||
}
|
}
|
||||||
|
|
||||||
static JEMALLOC_ATTR(always_inline) bool
|
JEMALLOC_ALWAYS_INLINE_C bool
|
||||||
malloc_init(void)
|
malloc_init(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -1402,7 +1402,7 @@ je_mallctlbymib(const size_t *mib, size_t miblen, void *oldp, size_t *oldlenp,
|
|||||||
*/
|
*/
|
||||||
#ifdef JEMALLOC_EXPERIMENTAL
|
#ifdef JEMALLOC_EXPERIMENTAL
|
||||||
|
|
||||||
static JEMALLOC_ATTR(always_inline) void *
|
JEMALLOC_ALWAYS_INLINE_C void *
|
||||||
iallocm(size_t usize, size_t alignment, bool zero, bool try_tcache,
|
iallocm(size_t usize, size_t alignment, bool zero, bool try_tcache,
|
||||||
arena_t *arena)
|
arena_t *arena)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user