On reviewing [1] I wondered why there are so many asserts and wondered if these asserts could have been prevented by a better functionality around bug reporting in our code. Introduce a BUG_ON macro, which is superior to assert() by * being always there, even when compiled with NDEBUG and * providind an additional human readable error message, like BUG() Opinions? Thanks, Stefan [1] https://public-inbox.org/git/20171121205852.15731-5-git@xxxxxxxxxxxxxxxxx/ Stefan Beller (3): Documentation/CodingGuidelines: explain why assert is bad git-compat: introduce BUG_ON(condition, fmt, ...) macro contrib/coccinelle: convert all conditional bugs to bug_on Documentation/CodingGuidelines | 3 +++ builtin/merge.c | 3 +-- contrib/coccinelle/bug_on.cocci | 8 ++++++++ environment.c | 22 ++++++++++------------ git-compat-util.h | 4 ++++ notes.c | 9 +++++---- refs.c | 7 +++---- refs/files-backend.c | 14 ++++++-------- refs/packed-backend.c | 13 +++++-------- sha1_file.c | 4 ++-- tempfile.c | 34 ++++++++++++++++------------------ usage.c | 12 +++++++++++- 12 files changed, 74 insertions(+), 59 deletions(-) create mode 100644 contrib/coccinelle/bug_on.cocci -- 2.15.0.448.gf294e3d99a-goog