On Tue, 22 Nov 2011, David Daney wrote: > From: David Daney <david.daney@xxxxxxxxxx> > > 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@xxxxxxxxxx> Acked-by: David Rientjes <rientjes@xxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html