summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2020-01-29 12:57:25 -0800
committerThiago Macieira <thiago.macieira@intel.com>2020-05-20 17:16:05 +0000
commitc6aec7eda396093616a8d7b71df8e029b885ffc3 (patch)
treef3a616f030f3adb8a4d11b9acd95c3e61c18a57f
parentd9b7b0f1598be85e15bf85d0e955f5f379e28945 (diff)
QLinkedListData: Move Q_CORE_EXPORT from class to shared_null
This makes no difference for the IA-64 C++ ABI nor for MSVC until MSVC 2019 16.6. But it does with 16.6, where the std::atomic constructor becomes non-trivial, which makes QtPrivate::RefCount non-trivial, which makes QLinkedListData non-trivial. Before this change: User code \ Qt MSVC <=16.5 MSVC >=16.6 MSVC <=16.5 works works MSVC >=16.6 fails works With this change, they should all work. The list of symbols exported should not change either, so linking against a Qt compiled with MSVC <=16.5 should continue to work. [ChangeLog][MSVC] Fixed a compatibility issue found when linking code compiled with version 16.6 to a Qt compiled with 16.5. Fixes: QTBUG-81727 Change-Id: If79a52e476594446baccfffd15ee771397467f8b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> (cherry picked from commit 7af5619836cb3bd2eca87fd10b81674c9e201e76) Reviewed-by: Simon Hausmann <hausmann@gmail.com>
-rw-r--r--src/corelib/tools/qlinkedlist.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/corelib/tools/qlinkedlist.h b/src/corelib/tools/qlinkedlist.h
index 1e6d4df474..338e9c5c46 100644
--- a/src/corelib/tools/qlinkedlist.h
+++ b/src/corelib/tools/qlinkedlist.h
@@ -55,14 +55,14 @@
QT_BEGIN_NAMESPACE
-struct Q_CORE_EXPORT QLinkedListData
+struct QLinkedListData
{
QLinkedListData *n, *p;
QtPrivate::RefCount ref;
int size;
uint sharable : 1;
- static const QLinkedListData shared_null;
+ Q_CORE_EXPORT static const QLinkedListData shared_null;
};
template <typename T>