From 6e67c03dc0225fc66343546b14e902b9d238b1a3 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Wed, 14 Mar 2012 13:27:56 +0100 Subject: Enable -Wnon-virtual-dtor for GCC 4.6 ...which has the necessary features to support it. Change a lot of classes to either contain a protected non-virtual dtor (which is backwards compatible, so even works for cppumaker-generated UNO headers) or a public virtual one. cppuhelper/propertysetmixin.hxx still needs to disable the warning, as the relevant class has a non-virtual dtor but friends, which would still cause GCC to warn. Includes a patch for libcmis, intended to be upstreamed. --- cppu/qa/Makefile | 4 ++-- cppu/qa/test_unotype.cxx | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'cppu/qa') diff --git a/cppu/qa/Makefile b/cppu/qa/Makefile index 99a7eec22be3..a68567d66415 100644 --- a/cppu/qa/Makefile +++ b/cppu/qa/Makefile @@ -26,11 +26,11 @@ # instead of those above. gb_PARTIALBUILD:=T -include $(GBUILDDIR)/gbuild_simple.mk +include $(GBUILDDIR)/gbuild.mk all: qa/cppumaker.flag qa/cppumaker/cppumaker.flag -%/cppumaker.flag: %/cppumaker.rdb +%/cppumaker.flag: %/cppumaker.rdb $(gb_UnoApiTarget_CPPUMAKERTARGET) $(call gb_Helper_abbreviate_dirs_native, \ $(call gb_Helper_execute,cppumaker) -O. -BUCR -C $< $(OUTDIR_FOR_BUILD)/bin/udkapi.rdb) touch $@ diff --git a/cppu/qa/test_unotype.cxx b/cppu/qa/test_unotype.cxx index 157cfcb1304d..546200ac7198 100644 --- a/cppu/qa/test_unotype.cxx +++ b/cppu/qa/test_unotype.cxx @@ -74,9 +74,17 @@ struct DerivedException1: css::uno::Exception {}; struct DerivedException2: css::uno::RuntimeException {}; -struct DerivedInterface1: css::uno::XInterface {}; +struct DerivedInterface1: css::uno::XInterface { +private: + ~DerivedInterface1() {} + // avoid warnings about virtual members and non-virtual dtor +}; -struct DerivedInterface2: css::uno::XComponentContext {}; +struct DerivedInterface2: css::uno::XComponentContext { +private: + ~DerivedInterface2() {} + // avoid warnings about virtual members and non-virtual dtor +}; class Test: public ::CppUnit::TestFixture { public: -- cgit