run-command: use BUG() to report bugs, not die()

The slightly misleading name die_bug() of the function intended to report a bug is actually called always, and only reports a bug if the passed-in parameter `err` is non-zero. It uses die_errno() to report the bug, to helpfully include the error message corresponding to `err`. However, as these messages indicate bugs, we really should use BUG(). And as BUG() is a macro to be able to report the exact file and line number, we need to convert die_bug() to a macro instead of only replacing the die_errno() by a call to BUG(). While at it, use a name more indicative of the purpose: CHECK_BUG(). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Johannes Schindelin committed May 2, 2018 at 11:38 UTC dde74d732fc3c5fa4bc4238aa935c164ff6c2dd5
1 file changed +10 -13
run-command.c
+10 -13
@@ -471,15 +471,12 @@ struct atfork_state {
471 sigset_t old;
472 };
473
474 -#ifndef NO_PTHREADS
475 -static void bug_die(int err, const char *msg)
476 -{
477 - if (err) {
478 - errno = err;
479 - die_errno("BUG: %s", msg);
480 - }
481 -}
482 -#endif
474 +#define CHECK_BUG(err, msg) \
475 + do { \
476 + int e = (err); \
477 + if (e) \
478 + BUG("%s: %s", msg, strerror(e)); \
479 + } while(0)
480
481 static void atfork_prepare(struct atfork_state *as)
482 {
@@ -491,9 +488,9 @@ static void atfork_prepare(struct atfork_state *as)
488 if (sigprocmask(SIG_SETMASK, &all, &as->old))
489 die_errno("sigprocmask");
490 #else
494 - bug_die(pthread_sigmask(SIG_SETMASK, &all, &as->old),
491 + CHECK_BUG(pthread_sigmask(SIG_SETMASK, &all, &as->old),
492 "blocking all signals");
496 - bug_die(pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &as->cs),
493 + CHECK_BUG(pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &as->cs),
494 "disabling cancellation");
495 #endif
496 }
@@ -504,9 +501,9 @@ static void atfork_parent(struct atfork_state *as)
501 if (sigprocmask(SIG_SETMASK, &as->old, NULL))
502 die_errno("sigprocmask");
503 #else
507 - bug_die(pthread_setcancelstate(as->cs, NULL),
504 + CHECK_BUG(pthread_setcancelstate(as->cs, NULL),
505 "re-enabling cancellation");
509 - bug_die(pthread_sigmask(SIG_SETMASK, &as->old, NULL),
506 + CHECK_BUG(pthread_sigmask(SIG_SETMASK, &as->old, NULL),
507 "restoring signal mask");
508 #endif
509 }