[lkml]   [2004]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: __attribute__((unused))
On Thu, Oct 14, 2004 at 10:02:43PM +0100, Russell King wrote:
> I notice that module.h contains stuff like:
> #define MODULE_GENERIC_TABLE(gtype,name) \
> extern const struct gtype##_id __mod_##gtype##_table \
> __attribute__ ((unused, alias(__stringify(name))))
> and even:
> #define __MODULE_INFO(tag, name, info) \
> static const char __module_cat(name,__LINE__)[] \
> __attribute_used__ \
> __attribute__((section(".modinfo"),unused)) = __stringify(tag) "=" info
> My understanding is that we shouldn't be using __attribute__((unused))
> in either of these - can someone confirm.
> The second one looks fairly dodgy since we're telling a compiler that
> it's both used and unused. That sounds a bit like a HHGTTG puzzle (you
> have tea and no tea.)

This makes sense, assuming the gcc info pages are correct:
This attribute, attached to a function, means that the function is
meant to be possibly unused. GCC will not produce a warning for
this function. GNU C++ does not currently support this attribute
as definitions without parameters are valid in C++.

This attribute, attached to a function, means that code must be
emitted for the function even if it appears that the function is
not referenced. This is useful, for example, when the function is
referenced only in inline assembly.

So, a function could be "used" and "unused" at the same time:

unused -> don't warn
used -> don't discard

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 14:07    [W:0.040 / U:8.676 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site