diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 442f2d16cf..5400d1bb85 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -256,6 +256,9 @@ stages: .cppcheck: &cppcheck_job <<: *default_triggering_rules stage: postcheck + before_script: + - export GCC_VERSION=$(gcc --version | sed -n 's/.*\([0-9]\+\)\.[0-9]\+\.[0-9]\+.*/\1/p') + - sed -i "/gcc\",/a\"-DCPPCHECK\", \"-D__STDC__\", \"-D__GNUC__=${GCC_VERSION}\"," compile_commands.json script: - *run_cppcheck after_script: diff --git a/lib/isc/include/isc/util.h b/lib/isc/include/isc/util.h index 730cfc268f..9f65d62970 100644 --- a/lib/isc/include/isc/util.h +++ b/lib/isc/include/isc/util.h @@ -234,6 +234,9 @@ extern void mock_assert(const int result, const char* const expression, #define _assert_int_not_equal(a, b, f, l) \ (((a) != (b)) ? (void)0 : (_assert_int_not_equal(a, b, f, l), abort())) #else /* UNIT_TESTING */ + +#ifndef CPPCHECK + /* * Assertions */ @@ -248,6 +251,19 @@ extern void mock_assert(const int result, const char* const expression, /*% Invariant Assertion */ #define INVARIANT(e) ISC_INVARIANT(e) +#else /* CPPCHECK */ + +/*% Require Assertion */ +#define REQUIRE(e) if (!(e)) abort() +/*% Ensure Assertion */ +#define ENSURE(e) if (!(e)) abort() +/*% Insist Assertion */ +#define INSIST(e) if (!(e)) abort() +/*% Invariant Assertion */ +#define INVARIANT(e) if (!(e)) abort() + +#endif /* CPPCHECK */ + #endif /* UNIT_TESTING */ /*