Messages in this thread | | | From | David Howells <> | Subject | Re: [PATCH v2 1/2] kernel.h: Add BUILD_BUG() macro. | Date | Wed, 23 Nov 2011 11:11:20 +0000 |
| |
David Daney <ddaney.cavm@gmail.com> wrote:
> From: David Daney <david.daney@cavium.com> > > We can place this in definitions that we expect the compiler to remove > by dead code elimination. If this assertion fails, we get a nice > error message at build time. > > The GCC function attribute error("message") was added in version 4.3, > so we define a new macro __linktime_error(message) to expand to this > for GCC-4.3 and later. This will give us an error diagnostic from the > compiler on the line that fails. For other compilers > __linktime_error(message) expands to nothing, and we have to be > content with a link time error, but at least we will still get a build > error. > > BUILD_BUG() expands to the undefined function __build_bug_failed() and > will fail at link time if the compiler ever emits code for it. On > GCC-4.3 and later, attribute((error())) is used so that the failure > will be noted at compile time instead. > > Signed-off-by: David Daney <david.daney@cavium.com>
Acked-by: David Howells <dhowells@redhat.com>
| |