зеркало из https://github.com/microsoft/git.git
error_errno: use constant return similar to error()
Commite208f9c
(make error()'s constant return value more visible, 2012-12-15) introduced some macro trickery to make the constant return from error() more visible to callers, which in turn can help gcc produce better warnings (and possibly even better code). Later,fd1d672
(usage.c: add warning_errno() and error_errno(), 2016-05-08) introduced another variant, and subsequent commits converted some uses of error() to error_errno(), losing the magic frome208f9c
for those sites. As a result, compiling vcs-svn/svndiff.c with "gcc -O3" produces -Wmaybe-uninitialized false positives (at least with gcc 6.2.0). Let's give error_errno() the same treatment, which silences these warnings. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
e0c1ceafc5
Коммит
4df5e91867
|
@ -436,6 +436,7 @@ static inline int const_error(void)
|
|||
return -1;
|
||||
}
|
||||
#define error(...) (error(__VA_ARGS__), const_error())
|
||||
#define error_errno(...) (error_errno(__VA_ARGS__), const_error())
|
||||
#endif
|
||||
|
||||
extern void set_die_routine(NORETURN_PTR void (*routine)(const char *err, va_list params));
|
||||
|
|
1
usage.c
1
usage.c
|
@ -148,6 +148,7 @@ void NORETURN die_errno(const char *fmt, ...)
|
|||
va_end(params);
|
||||
}
|
||||
|
||||
#undef error_errno
|
||||
int error_errno(const char *fmt, ...)
|
||||
{
|
||||
char buf[1024];
|
||||
|
|
Загрузка…
Ссылка в новой задаче