diff --git a/src/corelib/tools/qoffsetstringarray_p.h b/src/corelib/tools/qoffsetstringarray_p.h index c3392789c7a..a4ef8a3e48f 100644 --- a/src/corelib/tools/qoffsetstringarray_p.h +++ b/src/corelib/tools/qoffsetstringarray_p.h @@ -96,7 +96,8 @@ template constexpr auto minifyValue() template constexpr auto makeStaticString(Extractor extract, const T &... entries) { - std::array result = {}; + // append an extra null terminator + std::array result = {}; qptrdiff offset = 0; const char *strings[] = { extract(entries).operator const char *()... }; diff --git a/tests/auto/corelib/tools/qoffsetstringarray/tst_qoffsetstringarray.cpp b/tests/auto/corelib/tools/qoffsetstringarray/tst_qoffsetstringarray.cpp index dbb24e7af45..3265a9d9979 100644 --- a/tests/auto/corelib/tools/qoffsetstringarray/tst_qoffsetstringarray.cpp +++ b/tests/auto/corelib/tools/qoffsetstringarray/tst_qoffsetstringarray.cpp @@ -65,16 +65,16 @@ constexpr const auto messagesBigOffsets = qOffsetStringArray( void tst_QOffsetStringArray::init() { - static_assert(messages.m_string.size() == 50); + static_assert(messages.m_string.size() == 51); static_assert(messages.m_offsets.size() == 6); static_assert(std::is_same_v); static_assert(messages257.m_offsets.size() == 258); - static_assert(messages257.m_string.size() == 260); + static_assert(messages257.m_string.size() == 261); static_assert(std::is_same_v); static_assert(messagesBigOffsets.m_offsets.size() == 5); - static_assert(messagesBigOffsets.m_string.size() == 364); + static_assert(messagesBigOffsets.m_string.size() == 365); static_assert(std::is_same_v); }