Re: [PATCH v2 5/5] bug: Make BUG() call unreachable()

From: Arnd Bergmann
Date: Wed Feb 26 2014 - 08:29:26 EST


On Wednesday 26 February 2014, Josh Triplett wrote:
> @@ -134,7 +134,7 @@ extern void warn_slowpath_null(const char *file, const int line);
>
> #else /* !CONFIG_BUG */
> #ifndef HAVE_ARCH_BUG
> -#define BUG() do {} while (0)
> +#define BUG() do { unreachable(); } while (0)
> #endif

I disagree with this one. As Alan said, we really want to use an
arch specific BUG() even in the !CONFIG_BUG case.

For the cases where this is not yet possible, I'd suggest using

#define BUG() do { } while (1)


For older gcc versions, this is actually the same as unreachable(), but
it is not the same as __builtin_unreachable, because it causes undefined
behavior.

Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/