]> git.ipfire.org Git - thirdparty/git.git/commit - usage.c
C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Mon, 21 Feb 2022 16:05:27 +0000 (17:05 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 22 Feb 2022 03:14:19 +0000 (19:14 -0800)
commit56a29d2c970ca9f95fcfb5859a417a68ff7d5b47
tree7949041c180eeb21f260d4dcaff5aef73053b097
parentb7ba8587c3f8b9e54461a7914e13441dc659c92f
C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code

Remove the "else" branches of the HAVE_VARIADIC_MACROS macro, which
have been unconditionally omitted since 765dc168882 (git-compat-util:
always enable variadic macros, 2021-01-28).

Since were always omitted, anyone trying to use a compiler without
variadic macro support to compile a git since version
git v2.31.0 or later would have had a compilation error. 10 months
across a few releases since then should have been enough time for
anyone who cared to run into that and report the issue.

In addition to that, for anyone unsetting HAVE_VARIADIC_MACROS we've
been emitting extremely verbose warnings since at least
ee4512ed481 (trace2: create new combined trace facility,
2019-02-22). That's because there is no such thing as a
"region_enter_printf" or "region_leave_printf" format, so at least
under GCC and Clang everything that includes trace.h (almost every
file) emits a couple of warnings about that.

There's a large benefit to being able to have a hard dependency rely
on variadic macros, the code surrounding usage.c is hard to maintain
if we need to write two implementations of everything, and by relying
on "__FILE__" and "__LINE__" along with "__VA_ARGS__" we can in the
future make error(), die() etc. log where they were called from. We've
also recently merged d67fc4bf0ba (Merge branch 'bc/require-c99',
2021-12-10) which further cements our hard dependency on C99.

So let's delete the fallback code, and update our CodingGuidelines to
note that we depend on this. The added bullet-point starts with
lower-case for consistency with other bullet-points in that section.

The diff in "trace.h" is relatively hard to read, since we need to
retain the existing API docs, which were comments on the code used if
HAVE_VARIADIC_MACROS was not defined.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/CodingGuidelines
banned.h
git-compat-util.h
trace.c
trace.h
trace2.c
trace2.h
usage.c