diff --git a/src/corelib/global/qtypeinfo.h b/src/corelib/global/qtypeinfo.h index 53f6b3fff6..cbba253a75 100644 --- a/src/corelib/global/qtypeinfo.h +++ b/src/corelib/global/qtypeinfo.h @@ -60,7 +60,7 @@ public: enum { isPointer = false, isIntegral = std::is_integral::value, - isComplex = true, + isComplex = !isIntegral && !std::is_enum::value, isStatic = true, isRelocatable = std::is_enum::value, isLarge = (sizeof(T)>sizeof(void*)), diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp index 7d9f56ef38..e3c810984c 100644 --- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp +++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp @@ -731,7 +731,7 @@ QT_FOR_EACH_STATIC_CORE_POINTER(ADD_METATYPE_TEST_ROW) QTest::newRow("QPair") << ::qMetaTypeId >() << false << true << false << false; QTest::newRow("QPair") << ::qMetaTypeId >() << true << true << false << false; QTest::newRow("QPair") << ::qMetaTypeId >() << true << false << false << false; - QTest::newRow("FlagsDataEnum") << ::qMetaTypeId() << true << true << false << true; + QTest::newRow("FlagsDataEnum") << ::qMetaTypeId() << true << false << false << true; // invalid ids. QTest::newRow("-1") << -1 << false << false << false << false;