diff options
Diffstat (limited to 'src/corelib/global/qcompilerdetection.h')
-rw-r--r-- | src/corelib/global/qcompilerdetection.h | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h index f899d63a4d..5b6639d56b 100644 --- a/src/corelib/global/qcompilerdetection.h +++ b/src/corelib/global/qcompilerdetection.h @@ -151,7 +151,7 @@ /* Intel C++ also masquerades as GCC */ # define Q_CC_INTEL # define Q_ASSUME_IMPL(expr) __assume(expr) -# define Q_UNREACHABLE_IMPL() __assume(0) +# define Q_UNREACHABLE_IMPL() __builtin_unreachable() # elif defined(__clang__) /* Clang also masquerades as GCC */ # define Q_CC_CLANG @@ -496,6 +496,15 @@ # define Q_COMPILER_INITIALIZER_LISTS # define Q_COMPILER_NOEXCEPT # endif +# if __INTEL_COMPILER >= 1400 +# define Q_COMPILER_CONSTEXPR +# define Q_COMPILER_DELEGATING_CONSTRUCTORS +# define Q_COMPILER_EXPLICIT_OVERRIDES +# define Q_COMPILER_NONSTATIC_MEMBER_INIT +# define Q_COMPILER_RAW_STRINGS +# define Q_COMPILER_REF_QUALIFIERS +# define Q_COMPILER_UNRESTRICTED_UNIONS +# endif # endif #endif @@ -881,4 +890,26 @@ Q_UNUSED(valueOfExpression); /* the value may not be used if Q_ASSERT_X and Q_ASSUME_IMPL are noop */\ } while (0) + +/* + Sanitize compiler feature availability +*/ +#if !defined(Q_PROCESSOR_X86) +# undef QT_COMPILER_SUPPORTS_SSE2 +# undef QT_COMPILER_SUPPORTS_SSE3 +# undef QT_COMPILER_SUPPORTS_SSSE3 +# undef QT_COMPILER_SUPPORTS_SSE4_1 +# undef QT_COMPILER_SUPPORTS_SSE4_2 +# undef QT_COMPILER_SUPPORTS_AVX +# undef QT_COMPILER_SUPPORTS_AVX2 +#endif +#if !defined(Q_PROCESSOR_ARM) +# undef QT_COMPILER_SUPPORTS_IWMMXT +# undef QT_COMPILER_SUPPORTS_NEON +#endif +#if !defined(Q_PROCESSOR_MIPS) +# undef QT_COMPILER_SUPPORTS_MIPS_DSP +# undef QT_COMPILER_SUPPORTS_MIPS_DSPR2 +#endif + #endif // QCOMPILERDETECTION_H |