diff --git a/tests/unneeded-cast/main.cpp b/tests/unneeded-cast/main.cpp index ab7b308..10e920a 100644 --- a/tests/unneeded-cast/main.cpp +++ b/tests/unneeded-cast/main.cpp @@ -1,97 +1,97 @@ #include struct A { virtual void foo() { } }; struct B : public A { }; void test() { A *a = new A(); B *b = new B(); dynamic_cast(b); // warning: Casting to base dynamic_cast(a); // warning: Casting to itself dynamic_cast(a); // OK dynamic_cast(b); // warning: Casting to itself static_cast(b); // warning: Casting to base static_cast(a); // warning: Casting to itself static_cast(a); // OK static_cast(b); // warning: Casting to itself } class MyObj : public QObject { Q_OBJECT public: }; void testQObjectCast(QObject *o) { dynamic_cast(o); // Warn qobject_cast(o); // Warn MyObj myobj; qobject_cast(&myobj); // Warn qobject_cast(o); // OK } class FwdDeclared; class MyObj2 : public QObject { public: Q_DECLARE_PUBLIC(QObject) // OK, in macro MyObj2 *q_ptr; }; struct Base2 {}; class Base1 : public QObject {}; class Derived : public Base1, public Base2 { public: void test() { static_cast(this); // OK static_cast(this); // OK } }; void test2() { static_cast(nullptr); // OK static_cast(0); // OK MyObj *o1; MyObj2 *o2; true ? static_cast(o1) : static_cast(o2); // Ok - true ? qobject_cast(o1) : qobject_cast(o2); // Ok + true ? static_cast(o1) : static_cast(o2); // Ok } class MyObj4 : public QObject { Q_OBJECT public: void test() { qobject_cast(sender()); // OK } };