inline constant return from error() function
Commite208f9c
introduced a macro to turn error() calls into: (error(), -1) to make the constant return value more visible to the calling code (and thus let the compiler make better decisions about the code). This works well for code like: return error(...); but the "-1" is superfluous in code that just calls error() without caring about the return value. In older versions of gcc, that was fine, but gcc 4.9 complains with -Wunused-value. We can work around this by encapsulating the constant return value in a static inline function, as gcc specifically avoids complaining about unused function returns unless the function has been specifically marked with the warn_unused_result attribute. We also use the same trick for config_error_nonbool and opterror, which learned the same error technique ina469a10
. Reported-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
0bc85abb7a
commit
87fe5df365
@ -180,7 +180,7 @@ extern NORETURN void usage_msg_opt(const char *msg,
|
||||
extern int optbug(const struct option *opt, const char *reason);
|
||||
extern int opterror(const struct option *opt, const char *reason, int flags);
|
||||
#if defined(__GNUC__) && ! defined(__clang__)
|
||||
#define opterror(o,r,f) (opterror((o),(r),(f)), -1)
|
||||
#define opterror(o,r,f) (opterror((o),(r),(f)), const_error())
|
||||
#endif
|
||||
|
||||
/*----- incremental advanced APIs -----*/
|
||||
|
Reference in New Issue
Block a user