summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoão Abecasis <joao.abecasis@nokia.com>2012-03-15 11:37:02 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-21 01:18:22 +0100
commitc236842241f9fcfff3274d8b1b7b1f365dc9227f (patch)
tree1352fa77473c84e51e1e4419ea83332f5ccbcdd9
parent3e1e0b41a81b7c3e4140264dcaede7ab8a51bf77 (diff)
Use clang's builtin is_enum, if available
Change-Id: Ie0c32b8fd6d3bb02cf6c6b626bb31d57cdcdf497 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Glenn Watson <glenn.watson@nokia.com>
-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