aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unneeded-cast
diff options
context:
space:
mode:
authorSergio Martins <smartins@kde.org>2018-02-24 17:34:46 +0000
committerSergio Martins <smartins@kde.org>2018-02-24 17:36:04 +0000
commit23e5184bf6ed1963e1fb098fe49a1ac7429eb95f (patch)
tree0cc46f071c6224903625471a13cb532901a2a87e /tests/unneeded-cast
parent044c1dfdb92bc680c7b70084d5fe3f33137a9cae (diff)
unneeded-cast: Prefer qobject_cast over dynamic_cast by default
To disable this behavior you'll need to set: CLAZY_EXTRA_OPTIONS=unneeded-cast-prefer-dynamic-cast-over-qobject This is a better default for Qt.
Diffstat (limited to 'tests/unneeded-cast')
-rw-r--r--tests/unneeded-cast/config.json4
-rw-r--r--tests/unneeded-cast/dynamic_cast_over_qobjectcast.cpp (renamed from tests/unneeded-cast/qobjectcast.cpp)2
-rw-r--r--tests/unneeded-cast/dynamic_cast_over_qobjectcast.cpp.expected0
-rw-r--r--tests/unneeded-cast/main.cpp6
-rw-r--r--tests/unneeded-cast/main.cpp.expected7
-rw-r--r--tests/unneeded-cast/qobjectcast.cpp.expected1
6 files changed, 15 insertions, 5 deletions
diff --git a/tests/unneeded-cast/config.json b/tests/unneeded-cast/config.json
index cf5fbd5e..b39132d9 100644
--- a/tests/unneeded-cast/config.json
+++ b/tests/unneeded-cast/config.json
@@ -4,10 +4,10 @@
"filename" : "main.cpp"
},
{
- "filename" : "qobjectcast.cpp",
+ "filename" : "dynamic_cast_over_qobjectcast.cpp",
"env" :
{
- "CLAZY_EXTRA_OPTIONS" : "unneeded-cast-qobject"
+ "CLAZY_EXTRA_OPTIONS" : "unneeded-cast-prefer-dynamic-cast-over-qobject"
}
}
]
diff --git a/tests/unneeded-cast/qobjectcast.cpp b/tests/unneeded-cast/dynamic_cast_over_qobjectcast.cpp
index 11e0ed62..9cb0256d 100644
--- a/tests/unneeded-cast/qobjectcast.cpp
+++ b/tests/unneeded-cast/dynamic_cast_over_qobjectcast.cpp
@@ -4,5 +4,5 @@ struct MyObj : public QObject {};
void testQObjectCast(QObject *o)
{
- dynamic_cast<MyObj*>(o); // Warn
+ dynamic_cast<MyObj*>(o); // OK
}
diff --git a/tests/unneeded-cast/dynamic_cast_over_qobjectcast.cpp.expected b/tests/unneeded-cast/dynamic_cast_over_qobjectcast.cpp.expected
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/unneeded-cast/dynamic_cast_over_qobjectcast.cpp.expected
diff --git a/tests/unneeded-cast/main.cpp b/tests/unneeded-cast/main.cpp
index bca5b416..c58c32ac 100644
--- a/tests/unneeded-cast/main.cpp
+++ b/tests/unneeded-cast/main.cpp
@@ -33,6 +33,10 @@ void test()
dynamic_cast<A*>(a); // warning: Casting to itself
dynamic_cast<B*>(a); // OK
dynamic_cast<B*>(b); // warning: Casting to itself
+ static_cast<A*>(b); // warning: Casting to base
+ static_cast<A*>(a); // warning: Casting to itself
+ static_cast<B*>(a); // OK
+ static_cast<B*>(b); // warning: Casting to itself
}
class MyObj : public QObject
@@ -42,5 +46,5 @@ public:
void testQObjectCast(QObject *o)
{
- dynamic_cast<MyObj*>(o); // OK
+ dynamic_cast<MyObj*>(o); // Warn
}
diff --git a/tests/unneeded-cast/main.cpp.expected b/tests/unneeded-cast/main.cpp.expected
index 44ee4318..bcaee9ca 100644
--- a/tests/unneeded-cast/main.cpp.expected
+++ b/tests/unneeded-cast/main.cpp.expected
@@ -4,3 +4,10 @@ unneeded-cast/main.cpp:33:5: warning: Casting to itself [-Wclazy-unneeded-cast]
dynamic_cast<A*>(a); // warning: Casting to itself
unneeded-cast/main.cpp:35:5: warning: Casting to itself [-Wclazy-unneeded-cast]
dynamic_cast<B*>(b); // warning: Casting to itself
+unneeded-cast/main.cpp:36:5: warning: Casting to itself [-Wclazy-unneeded-cast]
+ static_cast<A*>(b); // warning: Casting to base
+unneeded-cast/main.cpp:37:5: warning: Casting to itself [-Wclazy-unneeded-cast]
+ static_cast<A*>(a); // warning: Casting to itself
+unneeded-cast/main.cpp:39:5: warning: Casting to itself [-Wclazy-unneeded-cast]
+ static_cast<B*>(b); // warning: Casting to itself
+unneeded-cast/main.cpp:49:5: warning: Use qobject_cast rather than dynamic_cast [-Wclazy-unneeded-cast]
diff --git a/tests/unneeded-cast/qobjectcast.cpp.expected b/tests/unneeded-cast/qobjectcast.cpp.expected
deleted file mode 100644
index ba0b86e0..00000000
--- a/tests/unneeded-cast/qobjectcast.cpp.expected
+++ /dev/null
@@ -1 +0,0 @@
-unneeded-cast/qobjectcast.cpp:7:5: warning: Use qobject_cast rather than dynamic_cast [-Wclazy-unneeded-cast]