lkml.org 
[lkml]   [2004]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    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:
    `unused'
    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++.

    `used'
    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

    --
    Frank
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:07    [W:0.021 / U:29.384 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site