qmetatype.h: remove unnecessary EXPORT macro

It was introduced in commit d9f9bc9bada91e3ec2b6c496d3b2242506ca56bc for
Qt 6.0 to avoid extern __declspec(dllexport), which MSVC doesn't like,
but was made obsolete by commit 77b99e8111cdd06b4fe12f2e18950a1e40ee2b76
that removed the extern templates altogether for MSVC.

This change is NOT a no-op because Q_CORE_EXPORT expands to
Q_DECL_IMPORT which is __attribute__((visibility("default"))) on ELF
platforms. That's actually a good thing, because the symbol is not
defined in any library that is not called QtCore anyway. GCC and Linux
are also going towards properly requiring imported symbols to be
explicitly marked, which this is.

Task-number: QTBUG-93471
Change-Id: Id0fb9ab0089845ee8843fffd16f99616883281e3
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 97fbf7d151fbadb2c4541a5e0689810584a9a210)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Thiago Macieira 2022-06-17 19:29:21 -07:00 committed by Qt Cherry-pick Bot
parent c7448d6359
commit 781b0856a2

View File

@ -2377,14 +2377,8 @@ public:
*/
#if !defined(QT_BOOTSTRAPPED) && !defined(Q_CC_MSVC)
#if !defined(QT_BUILD_CORE_LIB)
#define QT_METATYPE_TEMPLATE_EXPORT Q_CORE_EXPORT
#else
#define QT_METATYPE_TEMPLATE_EXPORT
#endif
#define QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER(TypeName, Id, Name) \
extern template class QT_METATYPE_TEMPLATE_EXPORT QMetaTypeForType<Name>;
#define QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER(TypeName, Id, Name) \
extern template class Q_CORE_EXPORT QMetaTypeForType<Name>;
QT_WARNING_PUSH
QT_WARNING_DISABLE_GCC("-Wattributes") // false positive because of QMetaTypeForType<void>
QT_FOR_EACH_STATIC_PRIMITIVE_TYPE(QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER)
@ -2394,7 +2388,6 @@ QT_FOR_EACH_STATIC_CORE_CLASS(QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER)
QT_FOR_EACH_STATIC_CORE_POINTER(QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER)
QT_FOR_EACH_STATIC_CORE_TEMPLATE(QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER)
#undef QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER
#undef QT_METATYPE_TEMPLATE_EXPORT
#endif
template<typename T>