summaryrefslogtreecommitdiff
path: root/prompt.h
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2020-08-06 17:25:37 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2020-08-06 17:25:37 -0700
commit15b52a44e0c92a0658e891194a5b0610d1f53afc (patch)
treeee4cc4a68988ac87484ebb6e3476b5fdd8546f3e /prompt.h
parentGit 2.28 (diff)
downloadtgif-15b52a44e0c92a0658e891194a5b0610d1f53afc.tar.xz
compat-util: type-check parameters of no-op replacement functions
When there is no need to run a specific function on certain platforms, we often #define an empty function to swallow its parameters and make it into a no-op, e.g. #define precompose_argv(c,v) /* no-op */ While this guarantees that no unneeded code is generated, it also discards type and other checks on these parameters, e.g. a new code written with the argv-array API (diff_args is of type "struct argv_array" that has .argc and .argv members): precompose_argv(diff_args.argc, diff_args.argv); must be updated to use "struct strvec diff_args" with .nr and .v members, like so: precompose_argv(diff_args.nr, diff_args.v); after the argv-array API has been updated to the strvec API. However, the "no oop" C preprocessor macro is too aggressive to discard what is unused, and did not catch such a call that was left unconverted. Using a "static inline" function whose body is a no-op should still result in the same binary with decent compilers yet catch such a reference to a missing field or passing a value of a wrong type. While at it, I notice that precompute_str() has never been used anywhere in the code, since it was introduced at 76759c7d (git on Mac OS and precomposed unicode, 2012-07-08). Instead of turning it into a static inline, just remove it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'prompt.h')
0 files changed, 0 insertions, 0 deletions