mirror of
https://github.com/fmtlib/fmt.git
synced 2025-07-29 18:27:40 +02:00
changed detection of Intel Compiler Classic to distinguish MS-Windows (#2510)
* changed detection of Intel Compiler Classic to distinguish MS-Windows * replaced !FMT_ICC_ON_WINDOWS by FMT_ICC_POSIX removed #pragma manged * replaced FMT_ICC_POSIX with FMT_ICC_INTRINSIC_BUG to be crystal clear about the macro's purpose
This commit is contained in:
@ -32,10 +32,15 @@
|
||||
# define FMT_GCC_PRAGMA(arg)
|
||||
#endif
|
||||
|
||||
#if defined(__INTEL_COMPILER)
|
||||
#ifdef __ICL
|
||||
# define FMT_ICC_VERSION __ICL
|
||||
# define FMT_ICC_INTRINSIC_BUG 1
|
||||
#elif defined(__INTEL_COMPILER)
|
||||
# define FMT_ICC_VERSION __INTEL_COMPILER
|
||||
# define FMT_ICC_INTRINSIC_BUG 0
|
||||
#else
|
||||
# define FMT_ICC_VERSION 0
|
||||
# define FMT_ICC_INTRINSIC_BUG 0
|
||||
#endif
|
||||
|
||||
#ifdef __NVCC__
|
||||
|
@ -49,14 +49,6 @@
|
||||
# define FMT_GCC_VISIBILITY_HIDDEN
|
||||
#endif
|
||||
|
||||
#ifdef __INTEL_COMPILER
|
||||
# define FMT_ICC_VERSION __INTEL_COMPILER
|
||||
#elif defined(__ICL)
|
||||
# define FMT_ICC_VERSION __ICL
|
||||
#else
|
||||
# define FMT_ICC_VERSION 0
|
||||
#endif
|
||||
|
||||
#ifdef __NVCC__
|
||||
# define FMT_CUDA_VERSION (__CUDACC_VER_MAJOR__ * 100 + __CUDACC_VER_MINOR__)
|
||||
#else
|
||||
@ -173,10 +165,13 @@ FMT_END_NAMESPACE
|
||||
!FMT_MSC_VER
|
||||
# define FMT_BUILTIN_CLZLL(n) __builtin_clzll(n)
|
||||
#endif
|
||||
#if (FMT_GCC_VERSION || FMT_HAS_BUILTIN(__builtin_ctz) || FMT_ICC_VERSION)
|
||||
#if (FMT_GCC_VERSION || FMT_HAS_BUILTIN(__builtin_ctz) || FMT_ICC_VERSION) && \
|
||||
!FMT_ICC_INTRINSIC_BUG
|
||||
# define FMT_BUILTIN_CTZ(n) __builtin_ctz(n)
|
||||
#endif
|
||||
#if (FMT_GCC_VERSION || FMT_HAS_BUILTIN(__builtin_ctzll) || FMT_ICC_VERSION)
|
||||
#if (FMT_GCC_VERSION || FMT_HAS_BUILTIN(__builtin_ctzll) || \
|
||||
FMT_ICC_VERSION) && \
|
||||
!FMT_ICC_INTRINSIC_BUG
|
||||
# define FMT_BUILTIN_CTZLL(n) __builtin_ctzll(n)
|
||||
#endif
|
||||
|
||||
@ -192,7 +187,6 @@ FMT_BEGIN_NAMESPACE
|
||||
namespace detail {
|
||||
// Avoid Clang with Microsoft CodeGen's -Wunknown-pragmas warning.
|
||||
# if !defined(__clang__)
|
||||
# pragma managed(push, off)
|
||||
# pragma intrinsic(_BitScanForward)
|
||||
# pragma intrinsic(_BitScanReverse)
|
||||
# if defined(_WIN64)
|
||||
@ -254,9 +248,6 @@ inline auto ctzll(uint64_t x) -> int {
|
||||
return static_cast<int>(r);
|
||||
}
|
||||
# define FMT_BUILTIN_CTZLL(n) detail::ctzll(n)
|
||||
# if !defined(__clang__)
|
||||
# pragma managed(pop)
|
||||
# endif
|
||||
} // namespace detail
|
||||
FMT_END_NAMESPACE
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user