diff --git a/src/corelib/tools/qarraydata.cpp b/src/corelib/tools/qarraydata.cpp index 3879b48cb..6b988533d 100644 --- a/src/corelib/tools/qarraydata.cpp +++ b/src/corelib/tools/qarraydata.cpp @@ -152,9 +152,16 @@ qCalculateGrowingBlockSize(size_t elementCount, size_t elementSize, size_t heade QT_WARNING_PUSH QT_WARNING_DISABLE_GCC("-Wmissing-field-initializers") +#ifndef _MSC_VER const QArrayData QArrayData::shared_null[2] = { { Q_REFCOUNT_INITIALIZE_STATIC, 0, 0, 0, sizeof(QArrayData) }, // shared null /* zero initialized terminator */}; +#else +struct QArrayDataNull{ + static constexpr const QArrayData shared_null_constexpr[2] = {{ Q_REFCOUNT_INITIALIZE_STATIC, 0, 0, 0, sizeof(QArrayData) }, }; +}; // MSVC workaround for static initialization issues +const QArrayData QArrayData::shared_null[2] = QArrayDataNull::shared_null_constexpr; +#endif static const QArrayData qt_array[3] = { { Q_REFCOUNT_INITIALIZE_STATIC, 0, 0, 0, sizeof(QArrayData) }, // shared empty