Messages in this thread | | | From | Bart Van Assche <> | Date | Fri, 9 Sep 2011 12:31:49 +0200 | Subject | Re: [PATCH 1/4] dynamic_debug: consolidate repetitive struct _ddebug descriptor definitions |
| |
On Fri, Sep 9, 2011 at 6:02 AM, Joe Perches <joe@perches.com> wrote: > On Thu, 2011-09-08 at 20:42 -0700, Andrew Morton wrote: > > On Thu, 08 Sep 2011 19:13:16 -0700 Joe Perches <joe@perches.com> wrote: > > > On Thu, 2011-09-08 at 16:52 -0700, Andrew Morton wrote: > > > > On Tue, 30 Aug 2011 14:28:41 -0400 > > > > Jason Baron <jbaron@redhat.com> wrote: > > > > > Replace the repetitive struct _ddebug descriptor definitions with > > > > > a new DECLARE_DYNAMIC_DEBUG_META_DATA(name, fmt) macro. > > > > > +#define DECLARE_DYNAMIC_DEBUG_METADATA(name, fmt) \ > > > > > + static struct _ddebug __used __aligned(8) \ > > > > > + __attribute__((section("__verbose"))) name = { \ > > > > > + .modname = KBUILD_MODNAME, \ > > > > > + .function = __func__, \ > > > > > + .filename = __FILE__, \ > > > > > + .format = (fmt), \ > > > > > + .lineno = __LINE__, \ > > > > > + .flags = _DPRINTK_FLAGS_DEFAULT, \ > > > > > + .enabled = false, \ > > > > > + } > > > > <anal>That macro implements a definition, not a declaration</anal> > > > Andrew, that's not quite true > > It's precisely true. > Not according to the c99 standard section 6.7
Have you read that paragraph ? This is what I found in paragraph 6.7, which confirms Andrews interpretation:
<quote> A declaration specifies the interpretation and attributes of a set of identifiers. A definition of an identifier is a declaration for that identifier that: - for an object, causes storage to be reserved for that object; - for a function, includes the function body; - for an enumeration constant or typedef name, is the (only) declaration of the identifier. </quote>
Bart. -- 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/
| |