summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/text/qstring/tst_qstring.cpp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2020-05-13 20:11:35 +0200
committerMarc Mutz <marc.mutz@kdab.com>2020-05-15 03:00:45 +0000
commitb655734965155146290f3f3a9205243af11e42fb (patch)
tree326e5ca5dcc0cdb10de37682350f34a1f542ac6c /tests/auto/corelib/text/qstring/tst_qstring.cpp
parentf468f76455c91cf1c5b477ab9348337522b4d9aa (diff)
QString: fix an aliasing issue in remove(QString)
Even in Qt 5, remove() can be passed an alias to *this. In Qt 6, with the advent of substring sharing, this will become even more pronounced. Use the same fix as was already used in QString::insert(). Pick-to: 5.15 Change-Id: I1a0d3d99fd7dff6e727661646d2cbfdc94df2682 Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'tests/auto/corelib/text/qstring/tst_qstring.cpp')
-rw-r--r--tests/auto/corelib/text/qstring/tst_qstring.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/auto/corelib/text/qstring/tst_qstring.cpp b/tests/auto/corelib/text/qstring/tst_qstring.cpp
index cefcd4f2e5..38df331cc2 100644
--- a/tests/auto/corelib/text/qstring/tst_qstring.cpp
+++ b/tests/auto/corelib/text/qstring/tst_qstring.cpp
@@ -388,6 +388,7 @@ private slots:
void remove_string();
void remove_regexp_data();
void remove_regexp();
+ void remove_extra();
void swap();
void prepend_qstring() { prepend_impl<QString>(); }
@@ -3028,6 +3029,15 @@ void tst_QString::remove_regexp()
}
}
+void tst_QString::remove_extra()
+{
+ {
+ QString s = "The quick brown fox jumps over the lazy dog. "
+ "The lazy dog jumps over the quick brown fox.";
+ s.remove(s);
+ }
+}
+
void tst_QString::toNum()
{
#if defined (Q_OS_WIN) && defined (Q_CC_MSVC)