Messages in this thread | | | Date | Tue, 22 Nov 2011 17:34:25 -0800 (PST) | From | David Rientjes <> | Subject | Re: [PATCH v2 1/2] kernel.h: Add BUILD_BUG() macro. |
| |
On Tue, 22 Nov 2011, David Daney 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 Rientjes <rientjes@google.com>
| |