mirror of
https://git.tukaani.org/xz.git
synced 2024-04-04 12:36:23 +02:00
liblzma: #define lzma_always_inline in common.h.
This commit is contained in:
parent
33daad3961
commit
6cdf0a7b79
1 changed files with 17 additions and 0 deletions
|
@ -98,6 +98,23 @@
|
|||
# endif
|
||||
#endif
|
||||
|
||||
// MSVC has __forceinline which shouldn't be combined with the inline keyword
|
||||
// (results in a warning).
|
||||
//
|
||||
// GCC 3.1 added always_inline attribute so we don't need to check
|
||||
// for __GNUC__ version. Similarly, all relevant Clang versions
|
||||
// support it (at least Clang 3.0.0 does already).
|
||||
// Other compilers might support too which also support __has_attribute
|
||||
// (Solaris Studio) so do that check too.
|
||||
#if defined(_MSC_VER)
|
||||
# define lzma_always_inline __forceinline
|
||||
#elif defined(__GNUC__) || defined(__clang__) || defined(__INTEL_COMPILER) \
|
||||
|| lzma_has_attribute(__always_inline__)
|
||||
# define lzma_always_inline inline __attribute__((__always_inline__))
|
||||
#else
|
||||
# define lzma_always_inline inline
|
||||
#endif
|
||||
|
||||
// These allow helping the compiler in some often-executed branches, whose
|
||||
// result is almost always the same.
|
||||
#ifdef __GNUC__
|
||||
|
|
Loading…
Reference in a new issue