summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/global/qisenum.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/corelib/global/qisenum.h b/src/corelib/global/qisenum.h
index c9b6ec6695..ef1ccc81a8 100644
--- a/src/corelib/global/qisenum.h
+++ b/src/corelib/global/qisenum.h
@@ -52,12 +52,18 @@ QT_BEGIN_NAMESPACE
# define Q_IS_ENUM(x) __is_enum(x)
# elif defined(Q_CC_MSVC) && defined(_MSC_FULL_VER) && (_MSC_FULL_VER >=140050215)
# define Q_IS_ENUM(x) __is_enum(x)
-# else
-# include <QtCore/qtypetraits.h>
-# define Q_IS_ENUM(x) QtPrivate::is_enum<x>::value
+# elif defined(Q_CC_CLANG)
+# if __has_extension(is_enum)
+# define Q_IS_ENUM(x) __is_enum(x)
+# endif
# endif
#endif
+#ifndef Q_IS_ENUM
+# include <QtCore/qtypetraits.h>
+# define Q_IS_ENUM(x) QtPrivate::is_enum<x>::value
+#endif
+
QT_END_HEADER
QT_END_NAMESPACE