core/gui: fix odr violation
When linking Qt statically, QtCore and QtGui are not separated into different DSOs. when both statically linked versions of QtCore and QtGui are linked into the same binary with LTO, gcc emits: ``` /usr/src/debug/qtbase/6.3.0-r0/git/src/gui/painting/qicc.cpp:105: warning: type ‘Tag’ violates the C++ One Definition Rule [-Wodr] /usr/src/debug/qtbase/6.3.0-r0/git/src/corelib/kernel/qtranslator.cpp:78: note: an enum with different value name is defined in another translation unit /usr/src/debug/qtbase/6.3.0-r0/git/src/gui/painting/qicc.cpp:106: note: name ‘acsp’ differs from name ‘Tag_End’ defined in another translation unit /usr/src/debug/qtbase/6.3.0-r0/git/src/corelib/kernel/qtranslator.cpp:78: note: mismatching definition ``` we therefore define the `struct Tag` in an anonymous namespace or the QIcc namespace Change-Id: Ib4edeede35c51322ab1959d70fb87359b196e59b Pick-to: 6.6 6.5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 6b13e0ca593592b34ea34837335db0d5cefdf630) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
6c89a9d606
commit
1e5892f74a
@ -39,8 +39,11 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
namespace {
|
||||
enum Tag { Tag_End = 1, Tag_SourceText16, Tag_Translation, Tag_Context16, Tag_Obsolete1,
|
||||
Tag_SourceText, Tag_Context, Tag_Comment, Tag_Obsolete2 };
|
||||
}
|
||||
|
||||
/*
|
||||
$ mcookie
|
||||
3cb86418caef9c95cd211cbf60a1bddd
|
||||
|
@ -20,6 +20,8 @@
|
||||
QT_BEGIN_NAMESPACE
|
||||
Q_LOGGING_CATEGORY(lcIcc, "qt.gui.icc", QtWarningMsg)
|
||||
|
||||
namespace QIcc {
|
||||
|
||||
struct ICCProfileHeader
|
||||
{
|
||||
quint32_be profileSize;
|
||||
@ -104,7 +106,9 @@ enum class Tag : quint32 {
|
||||
aabg = IccTag('a', 'a', 'b', 'g'),
|
||||
};
|
||||
|
||||
inline size_t qHash(const Tag &key, size_t seed = 0)
|
||||
} // namespace QIcc
|
||||
|
||||
inline size_t qHash(const QIcc::Tag &key, size_t seed = 0)
|
||||
{
|
||||
return qHash(quint32(key), seed);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user