On Tuesday 09 February 2016 12:36:24 Uwe Kleine-König wrote: > Having the attribute list after the declarator isn't recommended as > explicit as I remember having read it somewhere in the gcc docs. > > info gcc "Attribute Syntax" > > has: > > An attribute specifier list may appear immediately before a > declarator > (other than the first) in a comma-separated list of declarators in a > declaration of more than one identifier using a single list of > specifiers and qualifiers. Such attribute specifiers apply only to > the > identifier before whose declarator they appear. For example, in > > __attribute__((noreturn)) void d0 (void), > __attribute__((format(printf, 1, 2))) d1 (const char *, ...), > d2 (void) > > the 'noreturn' attribute applies to all the functions declared; the > 'format' attribute only applies to 'd1'. > > (Funny enough, in the example the attribute specifier list doesn't > appear *immediately* before the declarator d0.) > > This might be interpreted as "usually the attribute specifier list appears > after the declarator". Other than that I cannot find an explict > recommended placement in the docs. The examples in > > info gcc "Variable Attributes" > > always have the attribute list after the declarator.
Ok, thanks for the detailed answer, I've fixed it up locally now. I guess I'm applying the patch in arm-soc directly at some point and will use the line you suggested after some more testing: static struct map_desc og_io_desc[] __initdata = { Arnd