diff options
author | Sergio Martins <sergio.martins@kdab.com> | 2015-08-30 12:33:53 +0100 |
---|---|---|
committer | Sergio Martins <sergio.martins@kdab.com> | 2015-08-30 12:33:53 +0100 |
commit | 551eacfd9a419934a8d01bc8819838a8b4b88505 (patch) | |
tree | e52c9711779a7ea761b41c84b5ac539effdecb0d /tests/assert-with-side-effects | |
parent | a1ab4540b5139a3a84c2405dcb7abf4947f84a8d (diff) |
assert-with-side-effects: Cleanup
Diffstat (limited to 'tests/assert-with-side-effects')
-rw-r--r-- | tests/assert-with-side-effects/main.cpp | 51 | ||||
-rw-r--r-- | tests/assert-with-side-effects/test.expected | 2 |
2 files changed, 53 insertions, 0 deletions
diff --git a/tests/assert-with-side-effects/main.cpp b/tests/assert-with-side-effects/main.cpp new file mode 100644 index 00000000..43c5f46c --- /dev/null +++ b/tests/assert-with-side-effects/main.cpp @@ -0,0 +1,51 @@ +#include <QtCore/qglobal.h> +#include <QtCore/QVector> +#include <QtCore/QString> + + + + + + + + +struct SomeStruct +{ + bool nonConstMember() { return false; } + bool constMember() const { return false; } + bool m; +}; + + +bool global_func() { return false; } + +void test() +{ + SomeStruct s; + Q_ASSERT(s.nonConstMember()); // Warning, but ok with normal agressiveness + Q_ASSERT(global_func()); // Warning, but ok with normal agressiveness + + int i; + Q_ASSERT(i = 0); // Warning +} + +class MyVector : QVector<int> +{ +public: + MyVector() + { + Q_ASSERT(!isEmpty()); // OK + + int a, b; + Q_ASSERT(a <= b); // OK + + SomeStruct *s; + Q_ASSERT(s->m); // OK + Q_ASSERT(s->constMember()); // OK + + QString format; + int i = 0; + Q_ASSERT(format.at(i) == QLatin1Char('\'')); // OK + Q_ASSERT(++i); // Warning + } +}; diff --git a/tests/assert-with-side-effects/test.expected b/tests/assert-with-side-effects/test.expected new file mode 100644 index 00000000..143f3ca4 --- /dev/null +++ b/tests/assert-with-side-effects/test.expected @@ -0,0 +1,2 @@ +main.cpp:29:14: warning: Code inside Q_ASSERT has side-effects but won't be built in release mode [-Wclazy-assert-with-side-effects] +main.cpp:49:18: warning: Code inside Q_ASSERT has side-effects but won't be built in release mode [-Wclazy-assert-with-side-effects] |