From 9191e515001b293a782439d1ebcf2f4ff3e9a836 Mon Sep 17 00:00:00 2001 From: greg Date: Wed, 1 Jan 2020 13:56:35 -0500 Subject: [PATCH] enable warning level for for tests (msvc) and cleanup some warnings. --- CMakeLists.txt | 2 +- cmake/helpers.cmake | 2 +- parallel_hashmap/btree.h | 39 +++++++++++++------------- parallel_hashmap/phmap.h | 35 ++++++++++++----------- parallel_hashmap/phmap_fwd_decl.h | 11 ++++++++ parallel_hashmap/phmap_utils.h | 12 ++++---- tests/flat_hash_map_test.cc | 9 ++++++ tests/node_hash_policy_test.cc | 4 +-- tests/unordered_map_constructor_test.h | 8 ++++++ tests/unordered_map_lookup_test.h | 8 ++++++ tests/unordered_map_members_test.h | 9 ++++++ 11 files changed, 94 insertions(+), 45 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 65a25ea..d6fd019 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -116,7 +116,7 @@ if (PHMAP_BUILD_TESTS) ## --------------- btree ----------------------------------------------- phmap_cc_test(NAME btree SRCS "tests/btree_test.cc" - CWOPTS "/W0" CLOPTS "-w" DEPS gmock_main) + CLOPTS "-w" DEPS gmock_main) endif() diff --git a/cmake/helpers.cmake b/cmake/helpers.cmake index 6352f25..31109ea 100644 --- a/cmake/helpers.cmake +++ b/cmake/helpers.cmake @@ -26,7 +26,7 @@ function(phmap_cc_test) ) if(MSVC) target_compile_options(${_NAME} - PRIVATE ${PHMAP_CC_TEST_CWOPTS} + PRIVATE ${PHMAP_CC_TEST_CWOPTS} /W4 ) else() target_compile_options(${_NAME} diff --git a/parallel_hashmap/btree.h b/parallel_hashmap/btree.h index 2598e0b..b644ec5 100644 --- a/parallel_hashmap/btree.h +++ b/parallel_hashmap/btree.h @@ -34,6 +34,26 @@ #ifndef PHMAP_BTREE_BTREE_CONTAINER_H_ #define PHMAP_BTREE_BTREE_CONTAINER_H_ +#ifdef _MSC_VER + #pragma warning(push) + + #pragma warning(disable : 4127) // conditional expression is constant + #pragma warning(disable : 4324) // structure was padded due to alignment specifier + #pragma warning(disable : 4355) // 'this': used in base member initializer list + #pragma warning(disable : 4365) // conversion from 'int' to 'const unsigned __int64', signed/unsigned mismatch + #pragma warning(disable : 4514) // unreferenced inline function has been removed + #pragma warning(disable : 4623) // default constructor was implicitly defined as deleted + #pragma warning(disable : 4625) // copy constructor was implicitly defined as deleted + #pragma warning(disable : 4626) // assignment operator was implicitly defined as deleted + #pragma warning(disable : 4710) // function not inlined + #pragma warning(disable : 4711) // selected for automatic inline expansion + #pragma warning(disable : 4820) // '6' bytes padding added after data member + #pragma warning(disable : 4868) // compiler may not enforce left-to-right evaluation order in braced initializer list + #pragma warning(disable : 5026) // move constructor was implicitly defined as deleted + #pragma warning(disable : 5027) // move assignment operator was implicitly defined as deleted + #pragma warning(disable : 5045) // Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified +#endif + #include #include #include @@ -67,25 +87,6 @@ #define PHMAP_META_INTERNAL_STD_CONSTRUCTION_TRAITS_DONT_CHECK_DESTRUCTION 1 #endif -#ifdef _MSC_VER - #pragma warning(push) - - #pragma warning(disable : 4127) // conditional expression is constant - #pragma warning(disable : 4324) // structure was padded due to alignment specifier - #pragma warning(disable : 4355) // 'this': used in base member initializer list - #pragma warning(disable : 4514) // unreferenced inline function has been removed - #pragma warning(disable : 4623) // default constructor was implicitly defined as deleted - #pragma warning(disable : 4625) // copy constructor was implicitly defined as deleted - #pragma warning(disable : 4626) // assignment operator was implicitly defined as deleted - #pragma warning(disable : 4710) // function not inlined - #pragma warning(disable : 4711) // selected for automatic inline expansion - #pragma warning(disable : 4820) // '6' bytes padding added after data member - #pragma warning(disable : 4868) // compiler may not enforce left-to-right evaluation order in braced initializer list - #pragma warning(disable : 5026) // move constructor was implicitly defined as deleted - #pragma warning(disable : 5027) // move assignment operator was implicitly defined as deleted - #pragma warning(disable : 5045) // Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified -#endif - namespace phmap { // Defined and documented later on in this file. diff --git a/parallel_hashmap/phmap.h b/parallel_hashmap/phmap.h index 9cb9c5d..3e3e66a 100644 --- a/parallel_hashmap/phmap.h +++ b/parallel_hashmap/phmap.h @@ -33,6 +33,24 @@ // See the License for the specific language governing permissions and // limitations under the License. // --------------------------------------------------------------------------- + +#ifdef _MSC_VER + #pragma warning(push) + + #pragma warning(disable : 4127) // conditional expression is constant + #pragma warning(disable : 4324) // structure was padded due to alignment specifier + #pragma warning(disable : 4514) // unreferenced inline function has been removed + #pragma warning(disable : 4623) // default constructor was implicitly defined as deleted + #pragma warning(disable : 4625) // copy constructor was implicitly defined as deleted + #pragma warning(disable : 4626) // assignment operator was implicitly defined as deleted + #pragma warning(disable : 4710) // function not inlined + #pragma warning(disable : 4711) // selected for automatic inline expansion + #pragma warning(disable : 4820) // '6' bytes padding added after data member + #pragma warning(disable : 4868) // compiler may not enforce left-to-right evaluation order in braced initializer list + #pragma warning(disable : 5027) // move assignment operator was implicitly defined as deleted + #pragma warning(disable : 5045) // Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified +#endif + #include #include #include @@ -54,23 +72,6 @@ #include #endif -#ifdef _MSC_VER - #pragma warning(push) - - #pragma warning(disable : 4127) // conditional expression is constant - #pragma warning(disable : 4324) // structure was padded due to alignment specifier - #pragma warning(disable : 4514) // unreferenced inline function has been removed - #pragma warning(disable : 4623) // default constructor was implicitly defined as deleted - #pragma warning(disable : 4625) // copy constructor was implicitly defined as deleted - #pragma warning(disable : 4626) // assignment operator was implicitly defined as deleted - #pragma warning(disable : 4710) // function not inlined - #pragma warning(disable : 4711) // selected for automatic inline expansion - #pragma warning(disable : 4820) // '6' bytes padding added after data member - #pragma warning(disable : 4868) // compiler may not enforce left-to-right evaluation order in braced initializer list - #pragma warning(disable : 5027) // move assignment operator was implicitly defined as deleted - #pragma warning(disable : 5045) // Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified -#endif - namespace phmap { namespace container_internal { diff --git a/parallel_hashmap/phmap_fwd_decl.h b/parallel_hashmap/phmap_fwd_decl.h index efc3ecb..0ae3a04 100644 --- a/parallel_hashmap/phmap_fwd_decl.h +++ b/parallel_hashmap/phmap_fwd_decl.h @@ -11,6 +11,13 @@ // https://www.apache.org/licenses/LICENSE-2.0 // --------------------------------------------------------------------------- +#ifdef _MSC_VER + #pragma warning(push) + #pragma warning(disable : 4514) // unreferenced inline function has been removed + #pragma warning(disable : 4710) // function not inlined + #pragma warning(disable : 4711) // selected for automatic inline expansion +#endif + #include #include #include @@ -140,4 +147,8 @@ namespace phmap { } // namespace phmap +#ifdef _MSC_VER + #pragma warning(pop) +#endif + #endif // phmap_fwd_decl_h_guard_ diff --git a/parallel_hashmap/phmap_utils.h b/parallel_hashmap/phmap_utils.h index 6151ba2..76818f2 100644 --- a/parallel_hashmap/phmap_utils.h +++ b/parallel_hashmap/phmap_utils.h @@ -21,16 +21,18 @@ // limitations under the License. // --------------------------------------------------------------------------- +#ifdef _MSC_VER + #pragma warning(push) + #pragma warning(disable : 4514) // unreferenced inline function has been removed + #pragma warning(disable : 4710) // function not inlined + #pragma warning(disable : 4711) // selected for automatic inline expansion +#endif + #include #include #include #include "phmap_bits.h" -#ifdef _MSC_VER - #pragma warning(push) - #pragma warning(disable : 4514) // unreferenced inline function has been removed -#endif - namespace phmap { diff --git a/tests/flat_hash_map_test.cc b/tests/flat_hash_map_test.cc index d477ec9..316c9f7 100644 --- a/tests/flat_hash_map_test.cc +++ b/tests/flat_hash_map_test.cc @@ -27,12 +27,21 @@ #include #endif +#ifdef _MSC_VER + #pragma warning(push) + #pragma warning(disable: 4710 4711) +#endif + #include "hash_generator_testing.h" #include "unordered_map_constructor_test.h" #include "unordered_map_lookup_test.h" #include "unordered_map_members_test.h" #include "unordered_map_modifiers_test.h" +#ifdef _MSC_VER + #pragma warning(pop) +#endif + namespace phmap { namespace container_internal { namespace { diff --git a/tests/node_hash_policy_test.cc b/tests/node_hash_policy_test.cc index 5011ca3..eab1cbc 100644 --- a/tests/node_hash_policy_test.cc +++ b/tests/node_hash_policy_test.cc @@ -29,12 +29,12 @@ struct Policy : node_hash_policy { using init_type = int; template - static int* new_element(Alloc* alloc, int value) { + static int* new_element(Alloc*, int value) { return new int(value); } template - static void delete_element(Alloc* alloc, int* elem) { + static void delete_element(Alloc* , int* elem) { delete elem; } }; diff --git a/tests/unordered_map_constructor_test.h b/tests/unordered_map_constructor_test.h index cf74cbc..be58cd6 100644 --- a/tests/unordered_map_constructor_test.h +++ b/tests/unordered_map_constructor_test.h @@ -19,11 +19,19 @@ #include #include +#ifdef _MSC_VER + #pragma warning(push, 0) +#endif + #include "gmock/gmock.h" #include "gtest/gtest.h" #include "hash_generator_testing.h" #include "hash_policy_testing.h" +#ifdef _MSC_VER + #pragma warning(pop) +#endif + namespace phmap { namespace container_internal { diff --git a/tests/unordered_map_lookup_test.h b/tests/unordered_map_lookup_test.h index 8235428..8148b6f 100644 --- a/tests/unordered_map_lookup_test.h +++ b/tests/unordered_map_lookup_test.h @@ -15,11 +15,19 @@ #ifndef PHMAP_CONTAINER_INTERNAL_UNORDERED_MAP_LOOKUP_TEST_H_ #define PHMAP_CONTAINER_INTERNAL_UNORDERED_MAP_LOOKUP_TEST_H_ +#ifdef _MSC_VER + #pragma warning(push, 0) +#endif + #include "gmock/gmock.h" #include "gtest/gtest.h" #include "hash_generator_testing.h" #include "hash_policy_testing.h" +#ifdef _MSC_VER + #pragma warning(pop) +#endif + namespace phmap { namespace container_internal { diff --git a/tests/unordered_map_members_test.h b/tests/unordered_map_members_test.h index 7d45849..38af503 100644 --- a/tests/unordered_map_members_test.h +++ b/tests/unordered_map_members_test.h @@ -16,11 +16,20 @@ #define PHMAP_CONTAINER_INTERNAL_UNORDERED_MAP_MEMBERS_TEST_H_ #include + +#ifdef _MSC_VER + #pragma warning(push, 0) +#endif + #include "gmock/gmock.h" #include "gtest/gtest.h" #include "hash_generator_testing.h" #include "hash_policy_testing.h" +#ifdef _MSC_VER + #pragma warning(pop) +#endif + namespace phmap { namespace container_internal {