From d454b365f00434dc8f7c77bbb9e7ae7079df7aa7 Mon Sep 17 00:00:00 2001 From: Ivan Santiago Paunovic Date: Mon, 1 Jun 2020 16:50:49 -0300 Subject: [PATCH 1/4] Add Wnon-virtual-dtor Woverloaded-virtual compiler options Signed-off-by: Ivan Santiago Paunovic --- rviz2/CMakeLists.txt | 2 +- rviz_default_plugins/CMakeLists.txt | 2 +- rviz_rendering/CMakeLists.txt | 2 +- rviz_rendering_tests/CMakeLists.txt | 2 +- rviz_visual_testing_framework/CMakeLists.txt | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/rviz2/CMakeLists.txt b/rviz2/CMakeLists.txt index 57ee97064..99a0b174b 100644 --- a/rviz2/CMakeLists.txt +++ b/rviz2/CMakeLists.txt @@ -8,7 +8,7 @@ if(NOT CMAKE_CXX_STANDARD) endif() if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - add_compile_options(-Wall -Wextra -Wpedantic) + add_compile_options(-Wall -Wextra -Wpedantic -Wnon-virtual-dtor -Woverloaded-virtual) endif() find_package(ament_cmake REQUIRED) diff --git a/rviz_default_plugins/CMakeLists.txt b/rviz_default_plugins/CMakeLists.txt index e9c7adb10..fd18d0690 100644 --- a/rviz_default_plugins/CMakeLists.txt +++ b/rviz_default_plugins/CMakeLists.txt @@ -8,7 +8,7 @@ if(NOT CMAKE_CXX_STANDARD) endif() if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - add_compile_options(-Wall -Wextra -Wpedantic) + add_compile_options(-Wall -Wextra -Wpedantic -Wnon-virtual-dtor -Woverloaded-virtual) endif() # Tests currently only run on OS X @ OSRF jenkins diff --git a/rviz_rendering/CMakeLists.txt b/rviz_rendering/CMakeLists.txt index b300e02a9..76d957dc7 100644 --- a/rviz_rendering/CMakeLists.txt +++ b/rviz_rendering/CMakeLists.txt @@ -8,7 +8,7 @@ if(NOT CMAKE_CXX_STANDARD) endif() if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - add_compile_options(-Wall -Wextra -Wpedantic) + add_compile_options(-Wall -Wextra -Wpedantic -Wnon-virtual-dtor -Woverloaded-virtual) endif() # Tests currently only run on OS X @ OSRF jenkins diff --git a/rviz_rendering_tests/CMakeLists.txt b/rviz_rendering_tests/CMakeLists.txt index ed87f5e7f..457d0e442 100644 --- a/rviz_rendering_tests/CMakeLists.txt +++ b/rviz_rendering_tests/CMakeLists.txt @@ -8,7 +8,7 @@ if(NOT CMAKE_CXX_STANDARD) endif() if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - add_compile_options(-Wall -Wextra -Wpedantic) + add_compile_options(-Wall -Wextra -Wpedantic -Wnon-virtual-dtor -Woverloaded-virtual) endif() # Tests currently only run on OS X @ OSRF jenkins diff --git a/rviz_visual_testing_framework/CMakeLists.txt b/rviz_visual_testing_framework/CMakeLists.txt index 988af23ed..72e9c60c5 100644 --- a/rviz_visual_testing_framework/CMakeLists.txt +++ b/rviz_visual_testing_framework/CMakeLists.txt @@ -19,7 +19,7 @@ if(NOT CMAKE_CXX_STANDARD) endif() if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - add_compile_options(-Wall -Wextra -Wpedantic) + add_compile_options(-Wall -Wextra -Wpedantic -Wnon-virtual-dtor -Woverloaded-virtual) endif() find_package(ament_cmake REQUIRED) From 1e5aa9a5935047158c4304cebdfaadcaf21ecfa8 Mon Sep 17 00:00:00 2001 From: Ivan Santiago Paunovic Date: Mon, 1 Jun 2020 16:51:15 -0300 Subject: [PATCH 2/4] Add missing virtual destructor and avoid overloaded virtual warning Signed-off-by: Ivan Santiago Paunovic --- .../include/rviz_default_plugins/robot/link_updater.hpp | 3 +++ .../rviz_rendering/objects/point_cloud_renderable.hpp | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/rviz_default_plugins/include/rviz_default_plugins/robot/link_updater.hpp b/rviz_default_plugins/include/rviz_default_plugins/robot/link_updater.hpp index fd6ba5780..4f5584157 100644 --- a/rviz_default_plugins/include/rviz_default_plugins/robot/link_updater.hpp +++ b/rviz_default_plugins/include/rviz_default_plugins/robot/link_updater.hpp @@ -52,6 +52,9 @@ using rviz_common::properties::StatusLevel; class RVIZ_DEFAULT_PLUGINS_PUBLIC LinkUpdater { public: + + virtual ~LinkUpdater() {} + virtual bool getLinkTransforms( const std::string & link_name, Ogre::Vector3 & visual_position, Ogre::Quaternion & visual_orientation, diff --git a/rviz_rendering/include/rviz_rendering/objects/point_cloud_renderable.hpp b/rviz_rendering/include/rviz_rendering/objects/point_cloud_renderable.hpp index 36e4aa8fa..32b1a1531 100644 --- a/rviz_rendering/include/rviz_rendering/objects/point_cloud_renderable.hpp +++ b/rviz_rendering/include/rviz_rendering/objects/point_cloud_renderable.hpp @@ -78,8 +78,17 @@ class PointCloudRenderable : public Ogre::SimpleRenderable #pragma clang diagnostic ignored "-Woverloaded-virtual" #endif +// TODO(ivanpauno): Fixme! +// This is not creating a problem, but hidding a base class virtual method is not a good practice. +#ifndef _WIN32 +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Woverloaded-virtual" +#endif RVIZ_RENDERING_PUBLIC Ogre::RenderOperation * getRenderOperation() {return &mRenderOp;} +#ifndef _WIN32 +# pragma GCC diagnostic pop +#endif #ifdef __clang__ #pragma clang diagnostic pop From 32a232461d2d2e7debabcd39eebb2c226d4c5b98 Mon Sep 17 00:00:00 2001 From: Ivan Santiago Paunovic Date: Mon, 1 Jun 2020 18:36:36 -0300 Subject: [PATCH 3/4] Clean duplicated warning supression for clang. Delete TODO Signed-off-by: Ivan Santiago Paunovic --- .../rviz_rendering/objects/point_cloud_renderable.hpp | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/rviz_rendering/include/rviz_rendering/objects/point_cloud_renderable.hpp b/rviz_rendering/include/rviz_rendering/objects/point_cloud_renderable.hpp index 32b1a1531..6df6853c6 100644 --- a/rviz_rendering/include/rviz_rendering/objects/point_cloud_renderable.hpp +++ b/rviz_rendering/include/rviz_rendering/objects/point_cloud_renderable.hpp @@ -73,13 +73,6 @@ class PointCloudRenderable : public Ogre::SimpleRenderable RVIZ_RENDERING_PUBLIC virtual ~PointCloudRenderable(); -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Woverloaded-virtual" -#endif - -// TODO(ivanpauno): Fixme! -// This is not creating a problem, but hidding a base class virtual method is not a good practice. #ifndef _WIN32 # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Woverloaded-virtual" @@ -88,10 +81,6 @@ class PointCloudRenderable : public Ogre::SimpleRenderable Ogre::RenderOperation * getRenderOperation() {return &mRenderOp;} #ifndef _WIN32 # pragma GCC diagnostic pop -#endif - -#ifdef __clang__ -#pragma clang diagnostic pop #endif RVIZ_RENDERING_PUBLIC From 9fb0f1f2c6d3aab91c758b87feb982ba8c9f1343 Mon Sep 17 00:00:00 2001 From: Ivan Santiago Paunovic Date: Mon, 1 Jun 2020 18:49:23 -0300 Subject: [PATCH 4/4] Please linters Signed-off-by: Ivan Santiago Paunovic --- .../include/rviz_default_plugins/robot/link_updater.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/rviz_default_plugins/include/rviz_default_plugins/robot/link_updater.hpp b/rviz_default_plugins/include/rviz_default_plugins/robot/link_updater.hpp index 4f5584157..3fb42480c 100644 --- a/rviz_default_plugins/include/rviz_default_plugins/robot/link_updater.hpp +++ b/rviz_default_plugins/include/rviz_default_plugins/robot/link_updater.hpp @@ -52,7 +52,6 @@ using rviz_common::properties::StatusLevel; class RVIZ_DEFAULT_PLUGINS_PUBLIC LinkUpdater { public: - virtual ~LinkUpdater() {} virtual bool getLinkTransforms(