Overwork warning flags (#2936)

* ⚗️ update warning flags
This commit is contained in:
Niels Lohmann
2021-08-17 14:43:43 +02:00
committed by GitHub
parent f1e63a8322
commit 8cae9d7cd2
20 changed files with 123 additions and 38 deletions

View File

@@ -27,13 +27,14 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
// avoid warning when assert does not abort
#if defined(__GNUC__)
#pragma GCC diagnostic ignored "-Wstrict-overflow"
#endif
#include "doctest_compatibility.h"
// avoid warning when assert does not abort
DOCTEST_GCC_SUPPRESS_WARNING_PUSH
DOCTEST_GCC_SUPPRESS_WARNING("-Wstrict-overflow")
DOCTEST_CLANG_SUPPRESS_WARNING_PUSH
DOCTEST_CLANG_SUPPRESS_WARNING("-Wstrict-overflow")
/// global variable to record side effect of assert calls
static int assert_counter;
@@ -63,3 +64,6 @@ TEST_CASE("JSON_ASSERT(x)")
}
}
#endif
DOCTEST_GCC_SUPPRESS_WARNING_POP
DOCTEST_CLANG_SUPPRESS_WARNING_POP

View File

@@ -48,6 +48,10 @@ using nlohmann::json;
#define JSON_HAS_CPP_14
#endif
// NLOHMANN_JSON_SERIALIZE_ENUM uses a static std::pair
DOCTEST_CLANG_SUPPRESS_WARNING_PUSH
DOCTEST_CLANG_SUPPRESS_WARNING("-Wexit-time-destructors")
TEST_CASE("value conversion")
{
SECTION("get an object (explicit)")
@@ -1712,3 +1716,5 @@ TEST_CASE("JSON to enum mapping")
#ifdef JSON_HAS_CPP_14
#undef JSON_HAS_CPP_14
#endif
DOCTEST_CLANG_SUPPRESS_WARNING_POP

View File

@@ -29,6 +29,10 @@ SOFTWARE.
#include "doctest_compatibility.h"
// disable -Wnoexcept as exceptions are switched off for this test suite
DOCTEST_GCC_SUPPRESS_WARNING_PUSH
DOCTEST_GCC_SUPPRESS_WARNING("-Wnoexcept")
#include <nlohmann/json.hpp>
using json = nlohmann::json;
@@ -64,3 +68,5 @@ TEST_CASE("Tests with disabled exceptions")
delete sax_no_exception::error_string; // NOLINT(cppcoreguidelines-owning-memory)
}
}
DOCTEST_GCC_SUPPRESS_WARNING_POP

View File

@@ -39,6 +39,12 @@ using nlohmann::json;
#define JSON_HAS_CPP_14
#endif
// This test suite uses range for loops where values are copied. This is inefficient in usual code, but required to achieve 100% coverage.
DOCTEST_GCC_SUPPRESS_WARNING_PUSH
DOCTEST_GCC_SUPPRESS_WARNING("-Wrange-loop-construct")
DOCTEST_CLANG_SUPPRESS_WARNING_PUSH
DOCTEST_CLANG_SUPPRESS_WARNING("-Wrange-loop-construct")
TEST_CASE("iterator_wrapper")
{
SECTION("object")
@@ -1456,3 +1462,6 @@ TEST_CASE("items()")
#ifdef JSON_HAS_CPP_14
#undef JSON_HAS_CPP_14
#endif
DOCTEST_GCC_SUPPRESS_WARNING_POP
DOCTEST_CLANG_SUPPRESS_WARNING_POP

View File

@@ -358,10 +358,10 @@ TEST_CASE("JSON pointers")
CHECK_THROWS_WITH(j_const[jp] == 1, throw_msg.c_str());
}
#if defined(_MSC_VER)
#pragma warning (push)
#pragma warning (disable : 4127) // on some machines, the check below is not constant
#endif
// on some machines, the check below is not constant
DOCTEST_MSVC_SUPPRESS_WARNING_PUSH
DOCTEST_MSVC_SUPPRESS_WARNING(4127)
if (sizeof(typename json::size_type) < sizeof(unsigned long long))
{
auto size_type_max_uul = static_cast<unsigned long long>((std::numeric_limits<json::size_type>::max)());
@@ -375,9 +375,7 @@ TEST_CASE("JSON pointers")
CHECK_THROWS_WITH(j_const[jp] == 1, throw_msg.c_str());
}
#if defined(_MSC_VER)
#pragma warning (pop)
#endif
DOCTEST_MSVC_SUPPRESS_WARNING_POP
CHECK_THROWS_AS(j.at("/one"_json_pointer) = 1, json::parse_error&);
CHECK_THROWS_WITH(j.at("/one"_json_pointer) = 1,

View File

@@ -29,6 +29,10 @@ SOFTWARE.
#include "doctest_compatibility.h"
// disable -Wnoexcept due to struct pod_bis
DOCTEST_GCC_SUPPRESS_WARNING_PUSH
DOCTEST_GCC_SUPPRESS_WARNING("-Wnoexcept")
#include <nlohmann/json.hpp>
using nlohmann::json;
@@ -95,3 +99,5 @@ TEST_CASE("runtime checks")
from_json(j2, pod_bis());
}
}
DOCTEST_GCC_SUPPRESS_WARNING_POP

View File

@@ -42,10 +42,9 @@ using nlohmann::json;
#include <sstream>
#include <iomanip>
#if defined(_MSC_VER)
#pragma warning (push)
#pragma warning (disable : 4189) // local variable is initialized but not referenced
#endif
// local variable is initialized but not referenced
DOCTEST_MSVC_SUPPRESS_WARNING_PUSH
DOCTEST_MSVC_SUPPRESS_WARNING(4189)
TEST_CASE("README" * doctest::skip())
{
@@ -321,6 +320,4 @@ TEST_CASE("README" * doctest::skip())
}
}
#if defined(_MSC_VER)
#pragma warning (pop)
#endif
DOCTEST_MSVC_SUPPRESS_WARNING_POP

View File

@@ -53,6 +53,10 @@ using nlohmann::json;
#include <span>
#endif
// NLOHMANN_JSON_SERIALIZE_ENUM uses a static std::pair
DOCTEST_CLANG_SUPPRESS_WARNING_PUSH
DOCTEST_CLANG_SUPPRESS_WARNING("-Wexit-time-destructors")
/////////////////////////////////////////////////////////////////////
// for #1021
/////////////////////////////////////////////////////////////////////
@@ -656,3 +660,5 @@ TEST_CASE("regression tests 2")
static_assert(std::is_copy_assignable<nlohmann::ordered_json>::value, "");
}
}
DOCTEST_CLANG_SUPPRESS_WARNING_POP

View File

@@ -29,6 +29,10 @@ SOFTWARE.
#include "doctest_compatibility.h"
// disable -Wnoexcept due to class Evil
DOCTEST_GCC_SUPPRESS_WARNING_PUSH
DOCTEST_GCC_SUPPRESS_WARNING("-Wnoexcept")
#include <nlohmann/json.hpp>
using nlohmann::json;
@@ -845,3 +849,5 @@ TEST_CASE("Issue #1237")
struct non_convertible_type {};
static_assert(!std::is_convertible<json, non_convertible_type>::value, "");
}
DOCTEST_GCC_SUPPRESS_WARNING_POP

View File

@@ -41,6 +41,10 @@ using nlohmann::json;
#include <iomanip>
#include <test_data.hpp>
// this test suite uses static variables with non-trivial destructors
DOCTEST_CLANG_SUPPRESS_WARNING_PUSH
DOCTEST_CLANG_SUPPRESS_WARNING("-Wexit-time-destructors")
namespace
{
extern size_t calls;
@@ -623,3 +627,5 @@ TEST_CASE("Unicode (2/5)" * doctest::skip())
}
}
}
DOCTEST_CLANG_SUPPRESS_WARNING_POP

View File

@@ -41,6 +41,10 @@ using nlohmann::json;
#include <iomanip>
#include <test_data.hpp>
// this test suite uses static variables with non-trivial destructors
DOCTEST_CLANG_SUPPRESS_WARNING_PUSH
DOCTEST_CLANG_SUPPRESS_WARNING("-Wexit-time-destructors")
namespace
{
extern size_t calls;
@@ -337,3 +341,5 @@ TEST_CASE("Unicode (3/5)" * doctest::skip())
}
}
}
DOCTEST_CLANG_SUPPRESS_WARNING_POP

View File

@@ -41,6 +41,10 @@ using nlohmann::json;
#include <iomanip>
#include <test_data.hpp>
// this test suite uses static variables with non-trivial destructors
DOCTEST_CLANG_SUPPRESS_WARNING_PUSH
DOCTEST_CLANG_SUPPRESS_WARNING("-Wexit-time-destructors")
namespace
{
extern size_t calls;
@@ -337,3 +341,5 @@ TEST_CASE("Unicode (4/5)" * doctest::skip())
}
}
}
DOCTEST_CLANG_SUPPRESS_WARNING_POP

View File

@@ -41,6 +41,10 @@ using nlohmann::json;
#include <iomanip>
#include <test_data.hpp>
// this test suite uses static variables with non-trivial destructors
DOCTEST_CLANG_SUPPRESS_WARNING_PUSH
DOCTEST_CLANG_SUPPRESS_WARNING("-Wexit-time-destructors")
namespace
{
extern size_t calls;
@@ -337,3 +341,5 @@ TEST_CASE("Unicode (5/5)" * doctest::skip())
}
}
}
DOCTEST_CLANG_SUPPRESS_WARNING_POP