Re: [PATCH 5/5 ver2] debug: BUILD_BUG_ON: error on non-const expressions

From: Boaz Harrosh
Date: Sun Oct 05 2008 - 05:35:14 EST


Rusty Russell wrote:
> On Wednesday 03 September 2008 01:57:31 Boaz Harrosh wrote:
>> +#define BUILD_BUG_ON(e) \
>> + do { struct {int:-!!(e); } x __maybe_unused;} while(0)
>
> Why did you hate the void cast again? Simplest should
> be "(void)BUILD_BUG_ON_ZERO(e)". But if not, it seems to me that it's
> cleaner to do:
>
> #define BUILD_BUG_ON(e) \
> do { } while(BUILD_BUG_ON_ZERO(e))
>

I have not checked this exact variant, but the problems I had
is that wrong or non-const code was ignored by the compiler,
which is what I tried to solve.

> No chance of the compiler emitting unused vars.
>

There is no unused vars because the result is a zero-sized
struct which will never emit any code.

> Cheers,
> Rusty.
>

Is it that important? the code submitted does what is required
to the letter, should we spend more effort on this?

Boaz

--
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/