diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index 38b5dcfe1f3..f2c44a1de98 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -8225,6 +8225,12 @@ QString &QString::setRawData(const QChar *unicode, int size) \sa QString, QLatin1Char, {QStringLiteral()}{QStringLiteral} */ +/*! \fn QLatin1String::QLatin1String() + \since 5.6 + + Constructs a QLatin1String object that stores a nullptr. +*/ + /*! \fn QLatin1String::QLatin1String(const char *str) Constructs a QLatin1String object that stores \a str. diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h index 7829317d1fd..4c51b84ab85 100644 --- a/src/corelib/tools/qstring.h +++ b/src/corelib/tools/qstring.h @@ -83,6 +83,7 @@ template class QVector; class QLatin1String { public: + Q_DECL_CONSTEXPR inline QLatin1String() Q_DECL_NOTHROW : m_size(0), m_data(Q_NULLPTR) {} Q_DECL_CONSTEXPR inline explicit QLatin1String(const char *s) : m_size(s ? int(strlen(s)) : 0), m_data(s) {} Q_DECL_CONSTEXPR inline explicit QLatin1String(const char *s, int sz) : m_size(sz), m_data(s) {} inline explicit QLatin1String(const QByteArray &s) : m_size(s.size()), m_data(s.constData()) {} diff --git a/tests/auto/corelib/tools/qlatin1string/tst_qlatin1string.cpp b/tests/auto/corelib/tools/qlatin1string/tst_qlatin1string.cpp index 5b83fe19586..290c9fc12a4 100644 --- a/tests/auto/corelib/tools/qlatin1string/tst_qlatin1string.cpp +++ b/tests/auto/corelib/tools/qlatin1string/tst_qlatin1string.cpp @@ -46,6 +46,16 @@ private Q_SLOTS: void tst_QLatin1String::nullString() { + // default ctor + { + QLatin1String l1; + QCOMPARE(static_cast(l1.data()), static_cast(Q_NULLPTR)); + QCOMPARE(l1.size(), 0); + + QString s = l1; + QVERIFY(s.isNull()); + } + // from nullptr { const char *null = Q_NULLPTR;