Jeff King wrote: > Yes. I'd be fine having a single-argument BUG_ON() like that. But then, > I'm not sure what it's buying us over assert(). It lets you build with NDEBUG. It also goes through our own die() handler, which means that e.g. the error message gets propagated over remote transports. Please please please, don't rely on side-effects from assert(). They will cause me to run into pain over time. This issue alone might be worth banning use of assert() in the codebase, if we can't trust reviewers to catch problematic examples (fortunately reviewers have been pretty good about that so far, but banning it would free up their attention to focus on other aspects of a patch). Jonathan