summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel
diff options
context:
space:
mode:
authorTim Blechmann <tim@klingt.org>2022-05-05 10:09:00 +0800
committerTim Blechmann <tim@klingt.org>2024-02-06 05:03:09 +0000
commit6b13e0ca593592b34ea34837335db0d5cefdf630 (patch)
tree6736f8819a6dec3dedcfcbf7515795c5fcff041e /src/corelib/kernel
parent9e73917537368d1904cc227da3332e970ad23752 (diff)
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.5 6.6 6.7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r--src/corelib/kernel/qtranslator.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/corelib/kernel/qtranslator.cpp b/src/corelib/kernel/qtranslator.cpp
index 8ae35f5ef2..ec92404a15 100644
--- a/src/corelib/kernel/qtranslator.cpp
+++ b/src/corelib/kernel/qtranslator.cpp
@@ -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