diff options
Diffstat (limited to 'cppu/qa')
-rw-r--r-- | cppu/qa/test_reference.cxx | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/cppu/qa/test_reference.cxx b/cppu/qa/test_reference.cxx index df57eab424da..16d14d9d2ff7 100644 --- a/cppu/qa/test_reference.cxx +++ b/cppu/qa/test_reference.cxx @@ -90,8 +90,12 @@ private: struct Base1: public css::uno::XInterface { virtual ~Base1() = delete; + static ::css::uno::Type const & SAL_CALL static_type(void * = nullptr) // loplugin:refcounting + { return ::cppu::UnoType<Base1>::get(); } +}; +struct Base2: public Base1 { + virtual ~Base2() = delete; }; -struct Base2: public Base1 { virtual ~Base2() = delete; }; struct Base3: public Base1 { virtual ~Base3() = delete; }; struct Derived: public Base2, public Base3 { virtual ~Derived() = delete; @@ -100,7 +104,10 @@ struct Derived: public Base2, public Base3 { // The special case using the conversion operator instead: css::uno::Reference< css::uno::XInterface > testUpcast1( css::uno::Reference< Derived > const & ref) -{ return ref; } +{ + Base1::static_type(); // prevent loplugin:unreffun firing + return ref; +} // The normal up-cast case: css::uno::Reference< Base1 > testUpcast2( |