diff options
| author | Junio C Hamano <gitster@pobox.com> | 2025-04-08 11:43:12 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-04-08 11:43:12 -0700 |
| commit | b97b360c514acd0f5a148524a85bcdb583dbe914 (patch) | |
| tree | dc16900efcc7576ec5211f9c340e18bd01dd9020 /ci | |
| parent | 9d22ac51228304102deb62f30c3ecba6377e1237 (diff) | |
| parent | 5633aa3af1282cad5161174f17867399e58b2a54 (diff) | |
| download | git-b97b360c514acd0f5a148524a85bcdb583dbe914.tar.xz | |
Merge branch 'en/assert-wo-side-effects'
Ensure what we write in assert() does not have side effects,
and introduce ASSERT() macro to mark those that cannot be
mechanically checked for lack of side effects.
* en/assert-wo-side-effects:
treewide: replace assert() with ASSERT() in special cases
ci: add build checking for side-effects in assert() calls
git-compat-util: introduce ASSERT() macro
Diffstat (limited to 'ci')
| -rwxr-xr-x | ci/check-unsafe-assertions.sh | 18 | ||||
| -rwxr-xr-x | ci/run-static-analysis.sh | 2 |
2 files changed, 20 insertions, 0 deletions
diff --git a/ci/check-unsafe-assertions.sh b/ci/check-unsafe-assertions.sh new file mode 100755 index 0000000000..233bd9dfbc --- /dev/null +++ b/ci/check-unsafe-assertions.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +make CHECK_ASSERTION_SIDE_EFFECTS=1 >compiler_output 2>compiler_error +if test $? != 0 +then + echo >&2 "ERROR: The compiler could not verify the following assert()" + echo >&2 " calls are free of side-effects. Please replace with" + echo >&2 " ASSERT() calls." + grep undefined.reference.to..not_supposed_to_survive compiler_error | + sed -e s/:[^:]*$// | sort | uniq | tr ':' ' ' | + while read f l + do + printf "${f}:${l}\n " + awk -v start="$l" 'NR >= start { print; if (/\);/) exit }' $f + done + exit 1 +fi +rm compiler_output compiler_error diff --git a/ci/run-static-analysis.sh b/ci/run-static-analysis.sh index 0d51e5ce0e..ae714e020a 100755 --- a/ci/run-static-analysis.sh +++ b/ci/run-static-analysis.sh @@ -31,4 +31,6 @@ exit 1 make check-pot +${0%/*}/check-unsafe-assertions.sh + save_good_tree |
