From 3b6417de00dc1f33ee99625bccb236a1b6ecbf26 Mon Sep 17 00:00:00 2001 From: Jordan Williams <19399197+jwillikers@users.noreply.github.com> Date: Tue, 11 Feb 2020 06:13:55 -0600 Subject: [PATCH 1/4] fix clang range-loop-analysis warnings --- toml/region.hpp | 2 +- toml/serializer.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/toml/region.hpp b/toml/region.hpp index bf9ba12..77ba943 100644 --- a/toml/region.hpp +++ b/toml/region.hpp @@ -511,7 +511,7 @@ inline std::string format_underline(const std::string& message, retval << '\n'; retval << make_string(static_cast(line_num_width + 1), ' '); retval << color::bold << color::blue << " | " << color::reset; - for(const auto help : helps) + for(const auto& help : helps) { retval << color::bold << "\nHint: " << color::reset; retval << help; diff --git a/toml/serializer.hpp b/toml/serializer.hpp index 6503f08..1a65d2b 100644 --- a/toml/serializer.hpp +++ b/toml/serializer.hpp @@ -619,7 +619,7 @@ struct serializer // print non-table stuff first. because after printing [foo.bar], the // remaining non-table values will be assigned into [foo.bar], not [foo] - for(const auto kv : v) + for(const auto& kv : v) { if(kv.second.is_table() || is_array_of_tables(kv.second)) { From 3930a44ccd3a67213b4f3e0a08def5b7e2feb489 Mon Sep 17 00:00:00 2001 From: Jordan Williams <19399197+jwillikers@users.noreply.github.com> Date: Tue, 11 Feb 2020 06:17:54 -0600 Subject: [PATCH 2/4] enable range-loop-analysis flag for tests --- tests/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 6aaa779..af2f2cd 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -48,6 +48,7 @@ CHECK_CXX_COMPILER_FLAG("-Wduplicated-branches" COMPILER_SUPPORTS_WDUPLICATED_BR CHECK_CXX_COMPILER_FLAG("-Wlogical-op" COMPILER_SUPPORTS_WLOGICAL_OP) CHECK_CXX_COMPILER_FLAG("-Wuseless-cast" COMPILER_SUPPORTS_WUSELESS_CAST) CHECK_CXX_COMPILER_FLAG("-Wdouble-promotion" COMPILER_SUPPORTS_WDOUBLE_PROMOTION) +CHECK_CXX_COMPILER_FLAG("-Wrange-loop-analysis" COMPILER_SUPPORTS_WRANGE_LOOP_ANALYSIS) if(COMPILER_SUPPORTS_WALL) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") @@ -82,6 +83,9 @@ endif() if(COMPILER_SUPPORTS_WDOUBLE_PROMOTION) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wdouble-promotion") endif() +if(COMPILER_SUPPORTS_WRANGE_LOOP_ANALYSIS) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wrange-loop-analysis") +endif() option(TOML11_USE_UNRELEASED_TOML_FEATURES "use features in toml-lang/toml master while testing" OFF) From 76cae8c057c263b3cfa456296afae073906c0511 Mon Sep 17 00:00:00 2001 From: Jordan Williams <19399197+jwillikers@users.noreply.github.com> Date: Tue, 11 Feb 2020 06:25:10 -0600 Subject: [PATCH 3/4] enable -Wundef flag for tests --- tests/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index af2f2cd..e6a1f5b 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -49,6 +49,7 @@ CHECK_CXX_COMPILER_FLAG("-Wlogical-op" COMPILER_SUPPORTS_WLOGICAL_OP) CHECK_CXX_COMPILER_FLAG("-Wuseless-cast" COMPILER_SUPPORTS_WUSELESS_CAST) CHECK_CXX_COMPILER_FLAG("-Wdouble-promotion" COMPILER_SUPPORTS_WDOUBLE_PROMOTION) CHECK_CXX_COMPILER_FLAG("-Wrange-loop-analysis" COMPILER_SUPPORTS_WRANGE_LOOP_ANALYSIS) +CHECK_CXX_COMPILER_FLAG("-Wundef" COMPILER_SUPPORTS_WUNDEF) if(COMPILER_SUPPORTS_WALL) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") @@ -86,6 +87,9 @@ endif() if(COMPILER_SUPPORTS_WRANGE_LOOP_ANALYSIS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wrange-loop-analysis") endif() +if(COMPILER_SUPPORTS_WUNDEF) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wundef") +endif() option(TOML11_USE_UNRELEASED_TOML_FEATURES "use features in toml-lang/toml master while testing" OFF) From 6b5944e839e2785b0354769454ec9e4c5b2c6976 Mon Sep 17 00:00:00 2001 From: Jordan Williams <19399197+jwillikers@users.noreply.github.com> Date: Tue, 11 Feb 2020 06:30:18 -0600 Subject: [PATCH 4/4] fix -Wundef warnings --- toml/datetime.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/toml/datetime.hpp b/toml/datetime.hpp index 0d56e76..3fdec44 100644 --- a/toml/datetime.hpp +++ b/toml/datetime.hpp @@ -20,7 +20,7 @@ namespace toml namespace detail { // TODO: find more sophisticated way to handle this -#if _POSIX_C_SOURCE >= 1 || defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE) || defined(_SVID_SOURCE) || defined(_POSIX_SOURCE) +#if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 1) || defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE) || defined(_SVID_SOURCE) || defined(_POSIX_SOURCE) inline std::tm localtime_s(const std::time_t* src) { std::tm dst; @@ -35,7 +35,7 @@ inline std::tm gmtime_s(const std::time_t* src) if (!result) { throw std::runtime_error("gmtime_r failed."); } return dst; } -#elif _MSC_VER +#elif defined(_MSC_VER) inline std::tm localtime_s(const std::time_t* src) { std::tm dst;