On Thu, 17 Jul 2025 00:24:47 -0700
Josh Poimboeuf [off-list ref] wrote:
quoted
The only time I ever use BUG() is if it's too dangerous to continue (like a
function graph trampoline that gets corrupted and has no place to return
to). In general, usage of BUG() should be avoided.
This is an unreachable code path, but __builtin_unreachable() is crap
due to undefined behavior. IMO, BUG() for unreachable paths is cleaner
than WARN_ON_ONCE(), but it doesn't matter much either way I suppose.
Linus has stated that BUG() should be avoided too. If the code changes in
the future and this suddenly becomes a reachable path, would you rather
have a WARN or a BUG? If you don't have your system set up properly,
the BUG may not even show you why your system crashed.
-- Steve