aboutsummaryrefslogtreecommitdiffstats
path: root/tests/detaching-member
diff options
context:
space:
mode:
authorSergio Martins <smartins@kde.org>2015-10-22 18:59:19 +0100
committerSergio Martins <smartins@kde.org>2015-10-22 19:21:57 +0100
commit6c32f836d79cee3b1716d3e99ae185ad55df877f (patch)
tree6c86fe9e273bcdbd76079dcb23444ce9e5a4376a /tests/detaching-member
parent84af0d29c5476d88762b601960abcf2b5fa83410 (diff)
WIP: Introducing detaching-members check
Lots of improvements can be done, for example: container[0] = ..; // This detachment is unavoidable and desired, yet we are emitting a warning
Diffstat (limited to 'tests/detaching-member')
-rw-r--r--tests/detaching-member/main.cpp36
-rw-r--r--tests/detaching-member/test.expected4
2 files changed, 40 insertions, 0 deletions
diff --git a/tests/detaching-member/main.cpp b/tests/detaching-member/main.cpp
new file mode 100644
index 00000000..bbe709b8
--- /dev/null
+++ b/tests/detaching-member/main.cpp
@@ -0,0 +1,36 @@
+#include <QtCore/QList>
+
+struct A
+{
+ A()
+ {
+ m_list.begin(); // Warning
+ m_list.cbegin(); // OK
+ }
+
+ void f()
+ {
+ QList<int> list;
+ list.begin(); // OK
+ list[0]; // OK
+
+ m_list.begin(); // Warning
+ m_list.cbegin(); // OK
+ m_constList.begin(); // OK
+ }
+
+ void constF() const
+ {
+ m_list.begin(); // OK
+ m_string.data(); // OK
+ m_string[0]; // OK
+ m_list[0]; // OK
+ m_mutableString.begin(); // Warning
+ m_mutableString[0]; // Warning
+ }
+
+ QList<int> m_list;
+ QString m_string;
+ mutable QString m_mutableString;
+ const QList<int> m_constList;
+}; \ No newline at end of file
diff --git a/tests/detaching-member/test.expected b/tests/detaching-member/test.expected
new file mode 100644
index 00000000..2d5f94ea
--- /dev/null
+++ b/tests/detaching-member/test.expected
@@ -0,0 +1,4 @@
+main.cpp:7:9: warning: Potential detachment due to calling QList<int>::begin() [-Wclazy-detaching-member]
+main.cpp:17:9: warning: Potential detachment due to calling QList<int>::begin() [-Wclazy-detaching-member]
+main.cpp:28:9: warning: Potential detachment due to calling QString::begin() [-Wclazy-detaching-member]
+main.cpp:29:9: warning: Potential detachment due to calling QString::operator[]() [-Wclazy-detaching-member]